gpt4 book ai didi

batch-file - 启动新的 cmd.exe 并且不继承环境?

转载 作者:行者123 更新时间:2023-12-02 22:43:17 24 4
gpt4 key购买 nike

如果我从现有 shell 启动新的 CMD shell,则新 shell 会继承现有环境。有没有办法启动一个新的 shell,但将其初始化为系统默认值而不是继承?

当前结果:

B:\>set _test=blooharky

B:\>cmd
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

B:\>set _
_test=blooharky

期望的结果:

B:\>set _test=blooharky

B:\>cmd /env=default
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

B:\>set _
Environment variable _ not defined

[更新] 解决方案是 start/i cmd,由 dbenham below 共享。然而,这对于当前 shell 已经是第二代的情况没有帮助。示例:

d:\>set _
Environment variable _ not defined

d:\>set _test=blooharky

d:\>cmd /k

:: some work done using _test here...
:: ...but after we need a new clean shell:

d:\>start /i cmd

d:\>set _
_test=blooharky

:: uhoh, our shell isn't clean!

最佳答案

安德斯的配方对新环境有详细的控制,由于深度控制,我将其保留为可接受的答案。然而,该答案中的一个短语让我了解了我实际上将用于解决引发此查询的特定问题的方法。 “与初始 explorer.exe 环境相同的环境”。哦!我知道怎么做!

start /i "%windir%\explorer.exe" "%windir%\system32\cmd.exe"

注意:最初这只是start/i explorer ...,但事实证明它不能可靠地工作,并且两个部分都应该使用完整路径。如果您需要的只是一个解决方案,那么您现在已经拥有了一切,可以忽略其余的。

<小时/>

根据 Ander 下面关于安全警告的评论,我在 4 台 Win7 计算机(专业版、家庭版和企业版、32 和 64 位的混合)上进行了测试。我一直在摆弄用户帐户控制,一路向上,一路向下。还使用非管理员命令提示符 shell 进行了测试。这些都工作正常,没有错误或警告。

在 Server 2003 上,以本地管理员身份登录,我收到一个弹出对话框“文件下载 - 安全警告:您要运行还是保存此文件吗?”,其中包含运行、保存、并取消。按 [运行] 会出现一个附加对话框,“Windows 资源管理器 - 安全警告:无法验证发布者。您确定要运行此软件吗?”。再次按 [run] 最终会出现一个可用的命令 shell。显然,存在一些奇怪的逻辑,导致 Internet Explorer 被 Windows Explorer 取代,而没有 exe 的完整路径。

情况变得更奇怪了:使用带有标题的 start (有人建议 always include a title )会导致安全警告,无论完整路径如何。其他参数(例如起始目录)似乎没问题。

:: security warning
start "clean shell" /i "%windir%\explorer.exe" "%windir%\system32\cmd.exe"

:: is okay
start /i /d x:\ "%windir%\explorer.exe" "%windir%\system32\cmd.exe"

关于batch-file - 启动新的 cmd.exe 并且不继承环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8261156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com