16

我的目标是在我的 PATH 中添加一些可执行文件(例如 chrome),以便我可以调用

> chrome

从命令提示符开始,它将启动 Chrome。

我知道我可以将 Chrome 的包含目录添加到我的路径set PATH=%PATH%<chrome_path_here>;(我自己的路。

Chrome 可执行文件位于

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

所以我尝试了

> mklink chrome.exe "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"

这成功地为文件创建了一个符号链接(在输出中这样说,并在检查时使用> dir)。我知道我的 PATH 设置正确,当我运行> where chrome它时 b/c 会找到我的新符号链接。

但是,当我尝试使用新链接执行 chrome 时,什么也没有发生。应该会出现一个新的空窗口,但没有任何反应。命令提示符或任何内容中没有错误消息。

我究竟做错了什么?我是否误解了 Windows 中的符号链接?这是我一直在 Linux 中使用的方法,但我是 Windows Cmd 的新手。

谢谢!

4

2 回答 2

12

大多数程序不会从它们安装位置以外的地方运行 - 这正是您尝试从符号链接运行它时发生的情况。

在该文件夹中创建具有匹配名称的 CMD/BAT 文件会容易得多,这些文件将从您想要的位置启动程序:

REM chrome.cmd
start /b cmd /c "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" %*
于 2013-01-14T17:20:14.750 回答
9

在 Windows 7 中,我确认符号链接不起作用,就像原始问题中所报告的那样被忽略。

正如Harry在他的评论中所说,快捷方式确实有效,对我来说,比为我想在 CMD 下启用的每个新命令编写单独的脚本更简单、更容易。

他指出您需要将 .lnk 添加到您的 PATHEXT 变量中才能执行此操作。我确认这确实有效,并且将 .lnk 添加到 PATHEXT 我可以简单地输入快捷方式的名称部分来运行命令。例如,如果我的快捷方式名为“sublime.lnk”并且 PATHEXT 包含 .lnk,我可以使用简单的命令“sublime”执行链接。好的!

作为替代方案,我发现如果我在 CMD 提示符下简单地输入快捷方式的全名,包括 .lnk,则不需要修改 PATHEXT。例如,我在 %HOMEPATH%/bin 下创建了一个名为“sublime.lnk”的快捷方式,指向“C:\Program Files\Sublime Text 2\sublime_text.exe”。

现在通过将 %HOMEPATH%\bin 放在我的 %PATH% 中,我可以通过命令“sublime.lnk”运行 sublime。

以上任何一种方法都是我所知道的从 CMD 提示符访问 Windows 文件系统周围的各种命令的最佳方式。虽然我不是 Windows 专家,但我欢迎更好或更标准化的解决方案来解决这个问题。


PS:我刚刚发现您需要确保以这种方式使用的任何快捷方式的“开始于:”属性被清空,否则您的程序将不会在您调用快捷方式的目录中启动。


PPS:在相关说明中,我发现了如何在您的 CMD 会话登录到的目录上运行 Windows 资源管理器(或其替代品)start .:.

于 2015-06-18T17:25:08.437 回答