Как запустить файл bat с переменной в пути - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь создать сценарий аудита, и некоторые из моих существующих сценариев представляют собой файлы .bat, которые я хочу запустить из powershell и проверить вывод на успех / сбой.

Я пытался использовать start-процесс, но я не могу захватить вывод правильно.Я понял, что вывод получен путем запуска .bat, присваивая его переменной.Мой путь, однако, начинается с переменной буквы диска (так как он запускается с USB.

$batExample = $USB\Audit\Script\Agent.bat

- это то, что я хочу, но это не будет работать, так как это неожиданный токен.

Попробовал

$batExample = "$USB\Audit\Script\Agent.bat"
and 
$batExample = "$USB"\Audit\Script\Agent.bat

Я новичок в PowerShell. Есть ли у меня аварийный ключ?

Я уверен, что это небольшая синтаксическая проблема, но я пробовал всешаги, которые я могу придумать. Спасибо!

1 Ответ

1 голос
/ 03 июля 2019

Чтобы вызвать командный файл, вам нужно добавить префикс пути к &.Передайте вывод в Out-String, чтобы захватить его как переменную.

PS C:\_scripts> "@ECHO This is the sample output line 1`n@ECHO This is the sample output line 2" | Out-File test.bat -Encoding ascii
PS C:\_scripts> $testoutput = & ".\test.bat" | Out-String
PS C:\_scripts> $testoutput
This is the sample output line 1
This is the sample output line 2

Это должно работать в вашем примере:

$batExample = & "$USB\Audit\Script\Agent.bat" | Out-String

Если вам нужен ERRORLEVEL из пакетного файла, вы можете использовать автоматическую переменную $LASTEXITCODE .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...