重新启动命令提示符本身的命令(在 Windows 7 中)?

重新启动命令提示符本身的命令(在 Windows 7 中)?

每当我更改环境变量时(在 Windows 7 中),我都必须退出并启动命令提示符。这是必要的,否则更改不会反映出来。
是否有任何命令(或简单方法)可以在同一位置重新启动命令提示符?

更新:techie007 的原始解决方案start cmd && exit确实回答了我的问题的字面意思。但它并没有解决我的问题。看起来没有简单的方法。我尝试了 Stack Overflow 上提供的脚本。这些脚本对我有用,所以我将 techie007 的答案标记为已接受。

答案1

C:\> start cmd应该可以在当前文件夹中打开一个新的命令提示符窗口。

C:\> start cmd && exit如果它成功打开,您还可以使用它打开一个新的 CMD 提示符,然后关闭启动它的窗口。

无论成功与否,只使用一个&就可以关闭启动窗口。

编辑:现在,grawity 很好地指出了我没有理解……:)

在 Windows 中,没有(有意)固有的方法来执行此操作。

Stack Overflow 上也提出了这个问题,并且那里有一些很好的解释和可能的基于脚本的解决方法:

是否有从 Windows 命令提示符刷新环境变量的命令?

答案2

当您通过“我的电脑”修改注册表时,实际上并没有设置任何形式的环境变量。

环境变量不保存在注册表中。保存在注册表中的是模板,Windows Explorer 等程序在收到通知时会从中(重新)构建其环境变量。实际环境变量是每个进程的,存储在每个进程自己的地址空间中,最初从其父进程继承,之后可根据进程的意愿进行修改。Windows Explorer 等程序参与自愿协议,通过该协议,它们将重新读取模板并更新每个进程都有自己的环境每当Windows 消息广播到桌面上的所有(顶层)窗口。

许多 Win32 程序不参与此自愿协议微软的命令解释器就是这样一个程序。要修改正在运行的微软命令解释器进程中的环境变量,可以使用普通命令解释器命令用于修改环境变量,例如SETDPATHPATH。修改后的环境将被命令解释器生成的每个进程继承。

类似地,Windows 资源管理器进程中修改的环境仅由 Windows 资源管理器生成的进程继承它已收到消息并重新读取模板。已运行进程的环境变量不受其他进程对模板所做的修改的影响。他们自己的环境变量。已经运行Microsoft 命令解释器不会神奇地从在更改之前生成它的 Windows 资源管理器进程中获得更改的环境。此外,Windows 资源管理器的孙子进程仅从其父进程(命令解释器)继承,因此不会继承 Windows 资源管理器对其自身环境所做的任何环境更改。

其他命令解释器有所不同。 JP Software 的 TCC例如,它本身就参与了自愿协议。它将识别 Windows 消息,并从注册表中的模板更新自己的每个进程环境,当其“系统变更时更新环境”设置已启用。

相关内容