PowerShell ISE无法自动加载含空格路径脚本的原因及解决方案咨询
PowerShell ISE双击含空格路径脚本报错的原因与解决方案
问题原因
这不是PowerShell本身处理不了空格路径,而是Windows资源管理器默认的.ps1文件关联逻辑有问题——双击时传递给PowerShell ISE的路径没加引号,空格被当成了参数分隔符。比如你的路径C:\Users\username\OneDrive - CompanyName\Documents\Code\Demo.ps1会被拆成C:\Users\username\OneDrive、-、CompanyName\Documents\Code\Demo.ps1三个部分,ISE自然只会尝试加载前面半截不存在的路径,所以报错。
解决方案
1. 修改注册表修复文件关联
- 按Win+R输入
regedit打开注册表编辑器 - 找到路径
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Open\Command - 把默认值从
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe" %1改成"C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe" "%1"
(给%1加上双引号,强制系统把整个路径作为单个参数传递)
2. 右键选择"用PowerShell ISE打开"
右键点击.ps1文件,直接选用PowerShell ISE打开,这种方式系统会自动给路径套上引号,不会触发空格分割的问题。
3. 给OneDrive路径建无空格符号链接
如果不想碰注册表,用命令创建一个不带空格的链接指向你的OneDrive文件夹:
mklink /D "C:\Users\username\OneDriveLink" "C:\Users\username\OneDrive - CompanyName"
之后把脚本存到这个链接对应的路径下,双击就能正常加载。
内容的提问来源于stack exchange,提问作者JoeM
相关产品推荐
相关产品推荐

