右键Run With Powershell无法正确执行脚本的原因及解决方法
解决PowerShell右键运行脚本失效的问题
问题根源
右键选择"用PowerShell运行"时,默认工作目录是C:\Windows\System32,而非用户主目录或脚本所在目录,导致脚本中依赖当前工作目录的逻辑(比如相对路径引用)无法正常执行。
解决方案
方法1:修改脚本本身(推荐)
在脚本开头添加切换工作目录的命令,确保脚本执行环境与手动在用户主目录运行时一致:
- 如果脚本依赖用户主目录,添加:
Set-Location $env:USERPROFILE - 如果脚本依赖自身所在目录,添加:
Set-Location $PSScriptRoot
方法2:修改右键菜单默认工作目录
通过注册表修改右键"用PowerShell运行"的默认行为,强制切换到指定目录后再执行脚本:
- 按下
Win+R输入regedit打开注册表编辑器 - 导航到路径:
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Run with PowerShell\Command - 双击右侧的
默认值,修改命令内容:- 若要切换到用户主目录,将值改为:
powershell.exe "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; Set-Location '$env:USERPROFILE'; & '%1'" - 若要切换到脚本所在目录,将值改为:
powershell.exe "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; Set-Location (Split-Path '%1' -Parent); & '%1'"
- 若要切换到用户主目录,将值改为:
内容的提问来源于stack exchange,提问作者ProprietaryCloudGaming
相关产品推荐
相关产品推荐

