Оболочка 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 в один многостраничный TIFF, но я продолжаю получать недопустимую ошибку параметра. Я не могу понять, что я делаю неправильно, но я уверен, что это делать с кавычками или чем-то не в том месте

Лучший ответ:

Вы можете просто использовать оператор вызова ordinar:

& $im_convert_exe $srcname $destname

При вызове программы PowerShell даже добавит двойные кавычки.

ПРИМЕЧАНИЕ. Кстати, ваша ошибка может быть связана с использованием символа звездочки *. Я думаю, что Imagemagick ожидают, что ваша оболочка расширит звездочку и не расширит ее самостоятельно. Поэтому вы, возможно, действительно хотите это сделать:

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

& $im_convert_exe $srcnames $destname

Ответ №1

Попробуй это:

$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

Также неплохо указать полный путь к исполняемому файлу.

Оцените статью
TechArks.Ru
Добавить комментарий