答案1
您需要将该注册表项中的值HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Microsoft.PowerShellScript.1\Shell\Edit\Command
从更改"C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe" "%1"
为"C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe" """%1"""
。或者您可以使用以下 PowerShell 命令来执行此操作:
Set-ItemProperty HKLM:\SOFTWARE\Classes\Microsoft.PowerShellScript.1\Shell\Edit\Command '(default)' '"C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe" """%1"""'
答案2
构建于@用户364455的答案是,这会修改 >Edit 和 >Open 上下文菜单项,允许您通过双击 .ps1 文件或在 Explorer 中右键单击并选择“编辑”,在 ISE 中以提升权限打开 .ps1 文件(路径中有逗号)。此处使用字符串来避免转义引号的麻烦。不幸的是,PowerShell 控制台窗口会弹出一瞬间,但有解决方法(我发现最常见的解决方法涉及 VBScript)。
电源外壳:
$newValue = @'
PowerShell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command "& {Start-Process -FilePath C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe -ArgumentList '""""""""%1""""""""' -Verb RunAs}"
'@
# Open
Set-ItemProperty -Path HKLM:\SOFTWARE\Classes\Microsoft.PowerShellScript.1\Shell\Open\Command -Name '(default)' -Value $newValue -Force
# Edit
Set-ItemProperty -Path HKLM:\SOFTWARE\Classes\SystemFileAssociations\.ps1\Shell\Edit\Command -Name '(default)' -Value $newValue -Force
.reg 版本
Windows Registry Editor Version 5.00
; Open
[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Open\Command]
@="PowerShell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command \"& {Start-Process -FilePath C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell_ise.exe -ArgumentList '\"\"\"\"\"\"\"\"%1\"\"\"\"\"\"\"\"' -Verb RunAs}\""
; Edit
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations\.ps1\Shell\Edit\Command]
@="PowerShell.exe -NoProfile -WindowStyle Hidden -NonInteractive -Command \"& {Start-Process -FilePath C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell_ise.exe -ArgumentList '\"\"\"\"\"\"\"\"%1\"\"\"\"\"\"\"\"' -Verb RunAs}\""