Windows 如何在.cmd文件中使用不带特定路径的程序名

Windows 如何在.cmd文件中使用不带特定路径的程序名,windows,batch-file,cmd,Windows,Batch File,Cmd,当我通常在命令提示符下键入以下命令时 pageant "C:\Users\test\.ssh\id_rsa.ppk" 它运作良好 但另一方面,当我将test.cmd文件 pageant "C:\Users\test\.ssh\id_rsa.ppk" 然后双击,它就不起作用了 但是在下面的脚本中test.cmd "C:\Program Files\PuTTY\pageant.exe" "C:\Users\test\.ssh\

当我通常在命令提示符下键入以下命令时

pageant "C:\Users\test\.ssh\id_rsa.ppk"
它运作良好

但另一方面,当我将
test.cmd
文件

pageant "C:\Users\test\.ssh\id_rsa.ppk"
然后双击,它就不起作用了

但是在下面的脚本中
test.cmd

"C:\Program Files\PuTTY\pageant.exe" "C:\Users\test\.ssh\id_rsa.ppk"
工作顺利

他们之间有什么不同

我猜路径是由
cmd
识别的


如果有人有意见,请让我知道

如果该命令不包含绝对路径且不是内部命令,则cmd.exe将在当前文件夹中找到可执行文件,然后在环境变量
%path%
中查找文件夹。cmd中的当前文件夹似乎是
C:\Program Files\PuTTY
因此可以找到
pageant
并正常执行。如果您将
cd
放入另一个文件夹,则除非该文件夹位于
%PATH%

中,否则该文件夹将无法工作。最后一个示例是正确的操作方法,所有其他示例都是快捷方式,它们依赖于经常发生故障或无法控制的事情。我的建议是不要偷懒,使用上一个例子中的正确方法。如果您经常在脚本中使用该位置,则可以通过创建一个本地化变量
设置“tty=C:\Program Files\PuTTY”
,来最小化额外的键入,然后可以使用
%tty%\pageant.exe“
。无论哪种方式,由于您只需键入一次脚本,因此几乎不需要使用不必要的快捷方式,正如您已经看到的那样,这些快捷方式可能会阻止代码工作。