【发布时间】:2013-11-19 16:44:56
【问题描述】:
我需要知道是否有办法扩展 PowerShell 变量,同时不删除下一个字符。
我有的是命令:
"iCacls $Destination /GRANT domain\$userN:(OI)(CI)(M) /t" | Invoke-NativeExpression
Invoke-NativeExpression 函数如下所示:
function Invoke-NativeExpression
{
param (
[Parameter(Mandatory=$true,ValueFromPipeline=$true,Position=0)]
[string]$Expression
)
process
{
$executable,$arguments = $expression -split ' '
$arguments = $arguments | foreach {"'$_'"}
$arguments = $arguments -join ' '
$command = $executable + ' ' + $arguments
if ($command)
{
Write-Verbose "Invoking '$command'"
Invoke-Expression -command $command
}
}
}
此方法适用于非变量组,例如domain\Admins:perms 很好。
有没有办法让 PowerShell 接受 $UserN: 而不将 :(OI)(CI) 作为变量名的一部分?一种反向反向转义字符?
【问题讨论】:
标签: powershell escaping