Я пишу довольно длинный скрипт PowerShell для выполнения множества функций.По большей части все идет очень хорошо.
Однако, Еще одна функция, которую я запускаю на всех уровнях сценария, - очень подробный журнал.Я опубликую часть командной строки в качестве примера (упрощенно):
$Batch = $RunMe[1]
$ResultCode = (Invoke-Expression $Batch -ErrorAction Stop)
$ResultCode
Мой ожидаемый результат:
Return Code 0
Тогда я запишу это.Вместо этого я получаю что-то вроде:
C:\batchfiles\batchfile.bat argument
Какую команду я использую Invoke-Expression
для выполнения.
Некоторое быстрое объяснение переменных:
$RunMe
- это массив, в котором хранятся команды (0 - это «Пакет» или «Proc», а 1 - команда для запуска)
$Batch
созданов написанном коде (это первая ссылка на него)
$CurrFileToExec
- текущий обрабатываемый файл (сценарий одновременно запускается в папке).Я использую его для замены строки для командной строки, полученной из SQL.
Я не могу получить $ResultCode
, чтобы передать правильный вывод команды.Он просто снова передает функцию командной строки ($Batch
).
Как я уже сказал, фактическая функциональная часть работает отлично, но я не могу получить этот код возврата в свой лог-файл.