windows 如何防止PowerShell在执行.lnk文件时打开新窗口?

xriantvc  于 2023-11-21  发布在  Windows
关注(0)|答案(1)|浏览(161)

在Windows 10上,我创建了一个文件python.exe的快捷方式,将其重命名为python38.lnk,并尝试将其与Windows PowerShell一起使用。然而,它无法按预期工作。
当我简单地打印python38.lnk时,它会在一个不同的窗口中打开python控制台。当我打印python38.lnk --version时,它也会打开一个不同的窗口,在那里打印输出,然后立即关闭它,这样我就不能真正阅读答案了。
当我打印.exe文件的完整路径时,它正常工作。
如何使.lnk文件在同一个PowerShell窗口中正常工作?
(我必须提到,我试图使它的工作没有任何弯路,如添加原始.exe文件到路径等)

x8diyxa7

x8diyxa71#

Windows文件(.lnk.url文件)不能被系统直接执行,它们是Windows shell(Windows的GUI部分)的一个功能,并且总是在一个新窗口中执行。

  • 立即 * 但次优的解决方案是从快捷方式文件(.lnk)中 * 提取 * 可执行路径并调用后者;例如,假设您的python38.lnk文件位于当前目录中:
  1. & (
  2. New-Object -ComObject WScript.Shell).CreateShortcut((Convert-Path .\python38.lnk)
  3. ).TargetPath --version

字符串
请注意,这假设您的.lnk文件是用 only Python可执行路径定义的,而不是用 * arguments* 定义的。
例如,一个更好的解决方案是创建一个名为python38alias,它指向Python可执行文件路径:

  1. Set-Alias python38 (
  2. New-Object -ComObject WScript.Shell).CreateShortcut((Convert-Path .\python38.lnk)
  3. ).TargetPath


然后,您就可以使用python38调用所需的可执行文件。
如果您将此别名定义放在$PROFILE文件中,它也将在未来的PowerShell会话中可用。
注意事项:

  • 除非您希望.lnk文件所针对的可执行文件发生更改,否则最好确定其路径 once 并使用其 literal 值。
  • 别名仅对PowerShell可见。
展开查看全部

相关问题