在 Windows 中,我们可以通过开始菜单启动命令行 [开始菜单 >> 所有程序 >> 附件 >> “命令提示符”或者直接在启动编辑框中输入 cmd.exe]
第二种方法是直接从文件资源管理器中。按住 Shift 键,右键单击文件夹并选择“在此处打开命令窗口”。
为什么这两个命令有时会不同?我的意思是路径不同,因此有时在一个命令提示符下可以正常工作,但在另一个命令提示符下却不行!
例如,我刚刚安装了 doxygen。如果我通过开始菜单调用命令提示符,它会被识别并且 doxygen 命令可以正常工作。如果我通过文件资源管理器调用它,则无法识别此命令。
我确信这个问题以前也困扰过我,当时我的 ssh 会话可以在一个命令提示符下工作,但在另一个命令提示符下却不工作!
为什么会有差异?这种差异究竟是什么?我们能让两者使用相同的环境吗?
答案1
为什么会有差异以及这个差异到底是什么?
如果您改变了环境(例如Path
在安装后更改doxygen
),那么 shell 的任何新实例cmd
都会选择新的环境。
另一方面,explorer
需要重新启动才能获得新的环境(因为它继承了启动时传递给它的环境)。
如果您set
在两个不同的命令 shell 中运行(一个从开始菜单启动,另一个从“在此处打开命令窗口”启动),那么您将看到两个环境中的差异(更改前后)。
我希望您会发现这对其中一个doxygen
来说是合适的Path
,而对另一个来说则不合适。
答案2
开始菜单中的链接是一个快捷方式,您可以在其中定义管理员权限。当您通过 .exe 访问时,您必须右键单击并“以管理员身份运行”。
答案3
如果您查看该快捷方式的属性(开始 -> 附件 -> 命令提示符),您将看到它已%HOMEDRIVE%%HOMEPATH%
写入“启动于”,这就是它从那里启动而不是的原因C:\Windows\system32
。另请注意,默认情况下未选择“以管理员身份运行”。
该命令无法被识别,可能是因为它需要管理员权限。