如果我从现有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
Run Code Online (Sandbox Code Playgroud)
期望的结果:
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
Run Code Online (Sandbox Code Playgroud)
[更新]此解决方案start /i cmd由dbenham共享,如下所示.但是,在当前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: …Run Code Online (Sandbox Code Playgroud) 当我在Cygwin中从bash执行.bat脚本时,它运行的是什么机制?我知道如果我运行.EXE它将启动,无论.EXE是来自Cygwin还是来自更传统的环境.我明白当我用#执行可执行脚本时!在一开始,Cygwin为它提供了运行的魔力.
但为什么.bat脚本有效呢?Cygwin中是否有一些组件知道Windows .bat脚本是什么以及如何处理它?或者是在Windows下某种程度上不可能执行调用来启动.EXE文件,该文件不会自动也适用于.bat脚本?