脚本 powershell sudo 中的字符串问题

脚本 powershell sudo 中的字符串问题

我正在制作一个类似 sudo 的脚本,其想法是 sudo 函数将在高程中运行脚本块。我在该脚本块中传递的字符串变量有问题。好像双引号消失了。我的方法有什么问题?这是代码。

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)}

为了测试目的,可以将参数 -noexit 添加到参数列表中。

Start-Process Powershell -Verb Runas -ArgumentList "-noexit","-command &{cd $here; $SomeCode}" 

答案1

尝试将命令括在单引号中,并将双引号移到实际命令的前面。这是我在我的环境中所做的。

Start-Process Powershell -Verb Runas -ArgumentList `-command "&{cd $here; $SomeCode}"`

相关内容