1

我有一个 PowerShell 脚本文件C:\Path with spaces\Script.ps1

当我尝试通过用鼠标双击它在 Windows 文件资源管理器中打开它时,PowerShell 控制台会打开,由于脚本文件本身路径中的空格而引发异常,并且控制台会立即关闭。

PowerShell 异常

解决此问题的一种方法是C:\Path with spaces\Run script.lnk使用文件参数创建 PowerShell 的快捷方式,-File "C:\Path with spaces\Script.ps1"然后将其打开。

我想知道的是,是否有一种方法可以让脚本在包含空格的路径上自行运行,而无需其他附加文件。

4

1 回答 1

2

在我的电脑上试过。使用 Powershell 运行可以,但是当我使用 open with 并选择“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”时,它不会运行。

我能够通过修改注册表来解决它。一个快速的谷歌搜索将我带到这个关键

"HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\0\Command"

我复制了价值数据

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'"

并替换了命令

"HKEY_CURRENT_USER\Software\Classes\Applications\powershell.exe\shell\open\command"

我还没有重新启动,我不知道未来的更新会如何影响这一点。如果您有多个用户也可以应用它,这也是当前用户密钥而不是本地计算机。

请注意,PowerShell 的一项安全功能是用户无法通过双击启动脚本。请注意此命令“Set-ExecutionPolicy -Scope Process Bypass”。如果您修改此设置,请务必小心。

哦,我需要提醒您在进行任何更改之前备份注册表项。

于 2019-12-20T12:11:13.733 回答