我有一个.lnk
包含 CLI 应用程序快捷方式的文件夹,这些快捷方式位于不同的文件夹中。快捷方式文件夹已添加到PATH
,并且我的文件PATHEXT
夹包含“.lnk”扩展名。因此,我只需ffplay
在 shell 中键入,Windows 就会自动找到该D:/shortcuts/ffplay.lnk
文件并运行ffplay.exe
它指向的可执行文件。
当我从 cmd 运行时ffplay
,它按预期工作,将使用帮助输出到我的终端并退出。当我从 Powershell 执行相同操作时(无论它是旧的powershell.exe
还是新的pwsh.exe
),没有 stdout 输出,而是出现一个带有输出的新 conhost 窗口。
是否可以让链接的命令像普通控制台程序可执行文件一样运行?
如何重现:
答案1
是否可以让链接的命令像普通控制台程序可执行文件一样运行?
解决这个问题的方法可能不是使用.lnk
文件,而是使用.bat
文件代替,例如:
例如 lnkping.bat
@Echo Off
C:\Windows\System32\ping.exe %*
%*
允许.bat
文件接受任意数量的附加参数,然后这些参数将传递给指定的可执行文件,就像直接在命令行中输入一样。与.lnk
文件非常相似,在正常情况下,.bat
调用“脚本”时不需要包含扩展名(因此例如.\lnkping 1.1.1.1
应该可以正常工作)。