2014-07-23 134 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 

這也是一個好主意指定可執行文件的完整路徑。