我正在使用powershell快捷方式启动脚本(C:\Windows....\powershell.exe -file 'D:\powershell\script.ps1')。
有没有办法使脚本将其当前位置更改为该快捷方式所在的位置?
例如:脚本本身位于D:\powershell\,快捷方式位于C:\Work\Project1。我需要脚本cd到"C:\Work\Project1\"。
谢谢
我正在使用powershell快捷方式启动脚本(C:\Windows....\powershell.exe -file 'D:\powershell\script.ps1')。
有没有办法使脚本将其当前位置更改为该快捷方式所在的位置?
例如:脚本本身位于D:\powershell\,快捷方式位于C:\Work\Project1。我需要脚本cd到"C:\Work\Project1\"。
谢谢
沃尔特·米蒂的有用回答提供了一个有效的解决方案,前提是 快捷方式文件从 桌面 或 文件资源管理器 中打开。
这个回答提供了背景信息。
cmd.exe
和powershell.exe
- 将在配置/暗示的工作目录中启动。cmd.exe
的注意事项:如果工作目录被指定为UNC路径,cmd.exe
将无法切换到该目录;作为解决方法,请改用带有映射驱动器的路径(但是,显然,在打开快捷方式时必须映射该驱动器)。您可以使用快捷方式的TargetPath属性(可能需要使用get-childitem $psscriptroot,其中名称类似于scriptname并且扩展名类似于.lnk)与set-location cmdlet。
.TargetPath
属性指定要运行的可执行文件(或要打开的文档);在 OP 的情况下,它是 powershell.exe
,因此您提出的建议与 OP 希望快捷方式调用的 *.ps1
脚本在与快捷方式本身相同的目录中运行无关。 - mklement0