Вызовите .EXE-Tool с командой «>» внутри / в качестве параметра - PullRequest
0 голосов
/ 18 октября 2018

Я хотел бы вызвать EXE-инструмент (на основе Perl) со скриптом PowerShell.

В основном следующая команда вызывает инструмент в CMD.Инструмент обрабатывает некоторые файлы и создает выходной файл:

tool.exe [OPTIONS] > out.txt

Также инструмент выводит некоторые «результаты» после создания этого файла.Теперь, как я могу поместить эту команду в среду PowerShell?

Я пробовал разные решения, но всегда сам PowerShell использует "> out.txt".Инструмент не получает эту команду и не сможет правильно создать файл:

& tool.exe '> out.txt'

или с "":

& tool.exe "> out.txt"

Что я могу сделать?

РЕДАКТИРОВАНИЕ:

tool.exe :     1 directories scanned
In ..\Tool_new.ps1:150 Zeichen:1
+ & tool.exe > out.kml
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (    1 directories scanned:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

   22 files failed condition
   34 image files read

"Сканировано 1 каталогов" + "Условие сбоя 22 файлов" + "34 файла изображений прочитаны" - печатаются результаты.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Опция для запуска исполняемых файлов, как предполагалось, в то время как в powershell или ISE должна иметь cmd.exe обрабатывать это.Это добавляет крошечный микробит накладных расходов, и по мере развития технологии cmd будет постепенно сокращаться.Но для переходного периода, в котором мы находимся, это отличный вариант.

Пример с вашей программой: ...

cmd.exe /c "tool.exe > out.txt" 
0 голосов
/ 19 октября 2018

Не могли бы вы использовать:

& tool.exe | Out-File -Path '.\out.txt' -Encoding ascii
...