即时制作像sudo脚本,这个想法是,sudofunction将运行一个scriptblock在海拔。 我遇到了麻烦的stringvariables,我通过该脚本块。 就像双打引号消失。 我的方法有什么问题? 这是代码。
function sud([ScriptBlock]$SomeCode){ $here = Get-Location; Start-Process Powershell -Verb Runas -ArgumentList "-command &{cd $here; $SomeCode}" }
我想运行这样的命令:
$var ="Path" $newpath = $env:path + ";c:\somedir" $target = "Machine" sud -somecode { [Environment]::SetEnvironmentVariable($var, $newpath, $target)}
为了testing目的,可以将参数-noexit添加到参数列表中。
Start-Process Powershell -Verb Runas -ArgumentList "-noexit","-command &{cd $here; $SomeCode}"
尝试将命令封装在单个标记中,并将双引号移至实际命令的前面。 这是我在我的环境中所做的。
Start-Process Powershell -Verb Runas -ArgumentList `-command "&{cd $here; $SomeCode}"`