我已经盯着这个批处理脚本命令好几天了,试图弄清楚正在转义/传递/忽略的内容。
powershell -Command "Start-Process powershell \"-ExecutionPolicy Bypass -NoProfile -NoExit -Command `\"cd \`\"%scriptFolderPath%`\"; & \`\".\%powershellScriptFileName%\`\"`\"\" -Verb RunAs"
我尝试启动命令的各个部分来确定哪些部分被转义和通过,但不幸的是,我更加困惑了。希望比我聪明的人能够澄清我缺少的基本原理或概念。
我想澄清这些部分:
powershell
后面存在空格,还是为了转义双引号?-Command
实例,cd
命令最终解析为什么?反引号是否转义了反斜杠?或者反引号 + 反斜杠组合是否转义了引号?使用的第一个反斜杠的目的是什么? powershell -Command "Start-Process powershell "-ExecutionPolicy Bypass -NoProfile -NoExit -Command
\"cd \
"%scriptFolderPath%\"; & \
".%powershellScriptFileName%`"`"" -Verb RunAs"