小编Ant*_*ony的帖子

启动应用程序时,Windows 命令提示符是否会搜索 PATH 变量指定的位置以外的其他位置?

我尝试了以下实验。

在开始之前,我检查了 cmd 中的 PATH 变量,它具有以下值:

Path=C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\ProgramData\Lenovo\ReadyApps;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Skype\Phone\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Calibre2\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;
Run Code Online (Sandbox Code Playgroud)

一开始,我以为cmd只在PATH变量包含的目录中寻找可执行文件,所以我随机选择了一个应用程序——winword.exe(Microsoft Word),并试图从命令行启动它:

start winword
Run Code Online (Sandbox Code Playgroud)

但令我惊讶的是,该程序启动了!我感到惊讶的原因是因为我已经在 PATH 变量中的所有目录中搜索了名为“winword”的 exe 文件,但我所有的搜索结果都是空的!

因此,我得出结论,命令提示符必须知道在 PATH 变量中指定的位置以外的地方进行搜索以查找可执行文件。

很明显,我接下来要做的是寻找“winword”可执行文件所在的精确位置。结果发现 winword.exe 位于此处:

C:\Program Files\Microsoft Office 15\root\office15
Run Code Online (Sandbox Code Playgroud)

因此给了我一个想法,也许 CMD 在执行“开始”命令时会自动查看 ProgramFiles 和 ProgramFiles(x86)(以及它们的所有子目录)?这导致我尝试启动安装在我的计算机上的另一个应用程序 Audacity,其 exe 文件位于:

C:\Program Files (x86)\Audacity
Run Code Online (Sandbox Code Playgroud)

再次令我惊讶的是,当我输入以下内容时,Audacity 未能启动:

start …
Run Code Online (Sandbox Code Playgroud)

windows path command-line environment-variables

38
推荐指数
3
解决办法
3797
查看次数

使用 sc config 命令时出现“SC OpenService 失败访问被拒绝”错误。

这是 cmd 会话的快照

我已经以最高权限运行 cmd.exe。为什么我仍然被拒绝访问?

其他命令如 sc queryex 工作得很好。

在此输入图像描述

我还没有尝试在其他服务上使用 sc 配置。当我还不知道发生了什么时,不想把事情搞得太多。

我运行的是 Windows 版本 6.3.9600 (Windows 8.1)

administrator command-line windows-8.1 cmd.exe

5
推荐指数
1
解决办法
2万
查看次数