我必须将 UNIX Shell 脚本转换为 powershell 脚本。此脚本在 ImageMagick 上运行转换。当我尝试执行以下代码时:
$convertcmd="convert $dir\tmpI.mpc `(-clone 0 $process `)`(-clone 0 -channel $color2 -separate -threshold $high% $tapering `) -compose over -composite `"$outfile`""
Invoke-Expression -Command $convertcmd
我不断得到
Invoke-Expression : Missing expression after unary operator '-'.
At C:\test\xxxxx.ps1:189 char:21
+ Invoke-Expression <<<< -Command $convertcmd
+ CategoryInfo : ParserError: (-:String) [Invoke-Expression], ParseException
+ FullyQualifiedErrorId : MissingExpressionAfterOperator,Microsoft.PowerShell.Commands.InvokeExpressionCommand
$convertcmd 变成的结果字符串
convert .\COLORBALANCE\tmpI.mpc (-clone 0 -channel blue -level 0x98% +channel)(-clone 0 -channel blue -separate -threshold 18.9338% ) -compose over -composite /imagemagick/workarea/out/after.jpg
我怀疑它的括号作为 PowerGUI 中的智能感知在 (-clone... 语句的一部分给我同样的错误。我尝试查找如何转义括号和反斜杠(类似于 Unix Shell 代码)不是' t 工作,也不是 ` 字符。