2014-07-23 179 views
0

我使用PowerShell努力试图让一个外部命令来运行PowerShell的外壳与参数

$im_convert_exe = "convert.exe" 
$srcname = "C:\Scan\input\Test_*.tiff" 
$destname = "C:\Scan\merged\ScansMerge.tiff" 

$cmdline = $im_convert_exe + " `"" + $srcname + "`"" + " `"" + $destname + "`"" 
echo $cmdline 
invoke-expression -command $cmdline 

我试图使用imagemagiks的转换工具的TIFF文件的文件夹转换成一个多页的其他应用蒂夫,但我不断收到一个无效的参数错误。我看不到我在做什么错的,但我敢肯定它与引号或东西在错误的地点

回答

1

你可能只是使用一般负责调用操作:调用程序时

& $im_convert_exe $srcname $destname 

PowerShell的甚至会加双引号本身。

注意:顺便说一句,您的错误可能与您使用星号字符*相关。我认为Imagemagick希望你的shell扩展星号,并且不会自己扩展它。所以你可能真的想这样做:

$im_convert_exe = "convert.exe" 
$srcnames = ls "C:\Scan\input\Test_*.tiff" 
$destname = "C:\Scan\merged\ScansMerge.tiff" 

& $im_convert_exe $srcnames $destname 
+0

我有点绊倒了这个自己,我想我试图让它比它需要更复杂 – beakersoft

0

试着这样做:

$im_convert_exe = "convert.exe" 
$srcname = "C:\Scan\input\Test_*.tiff" 
$destname = "C:\Scan\merged\ScansMerge.tiff" 

$cmdline = [scriptblock]::Create($im_convert_exe + " `"" + $srcname + "`"" + " `"" + $destname + "`"") 
Invoke-Command -ScriptBlock $cmdline 

这也是一个好主意指定可执行文件的完整路径。