POWERSHELL: вывод файла exe в переменную
Я пытаюсь выполнить скрипт для запуска exe-файла, получить выходные данные, выполнить поиск по выходным данным, а затем, если это правда, сделать что-то:
$output = cmd /c file.exe additionalvariables --batch |
write-host |
where-object($_ -eq "Finished with Success") #finished with success does not work
if ( -eq "Finished with Success") # I need to perform a check
{
"Command executed"
$tcp.Dispose()
Exit 0
}
else
{
"There is an issue with file.exe additionalvariables command"
EXIT 1
$tcp.Dispose()
}
Таким образом, окончание с успехом не работает в строке 1, вы знаете, как проверить, если заявление? if ( -eq "Finished with Success")
,
1 ответ
Решение
В общем, вы ожидаете, что.exe вернет ноль (0) для успеха и что-либо кроме нуля (0) для сбоя. Разбор вывода текста, как правило, не требуется. Ниже приведен код, который поможет вам начать с чего-то.
$output = cmd /c returnit.bat 0
$LASTEXITCODE
Write-Verbose "===$output==="
$output.gettype()
if ($output -match '.*Finished with Success.*') {
"Command executed"
$tcp.Dispose()
Exit 0
}
else
{
"There is an issue with file.exe additionalvariables command"
EXIT 1
$tcp.Dispose()
}
=== returnit.bat
@ECHO OFF
SET /A "IT=0"
IF "%1" NEQ "" (SET /A "IT=%1")
IF %IT% EQU 0 (
ECHO a line
ECHO Finished with Success
ECHO another line
)
EXIT /B %IT%