PowerShell命令含C:\Program Files路径空格导致语法错误求助
问题根源
你的报错是由多层PowerShell命令嵌套时,带空格路径的引号转义错误导致的。C:\Program Files包含空格,必须被完整识别为单个路径参数,你当前写法的嵌套引号没有做转义,被系统提前截断,触发语法错误。
修正后可直接使用的命令
powershell.exe -command "Start-Process powershell -Credential domain\differentUserName -ArgumentList '-noprofile -command &{Start-Process ''C:\Program Files\Sync\Console.exe'' -verb runas}'"
修复逻辑说明
- 带空格的文件路径必须用引号完整包裹,才会被解析为单个参数,不会被空格拆分为多个参数
- 本次调整把路径外层的双引号替换为了单引号,由于路径被包裹在
ArgumentList的单引号字符串内,内部单引号用两个连续单引号转义即可,避免了多层双引号嵌套的转义混乱问题 - 如果你更习惯用双引号包裹路径,也可以用PowerShell的转义字符反引号(`)转义内部双引号,写法如下:
powershell.exe -command "Start-Process powershell -Credential domain\differentUserName -ArgumentList '-noprofile -command &{Start-Process `"C:\Program Files\Sync\Console.exe`" -verb runas}'"
内容的提问来源于stack exchange,提问作者nickyung
相关产品推荐
相关产品推荐

