Как вернуть пользовательский уровень ошибки в PowerShell? - PullRequest
0 голосов
/ 12 марта 2019

Я хочу запустить скрипт из командной строки и получить уровень ошибки.Я использую этот пакетный скрипт.

set log=C:\Users\PowerShell\XML\Log.txt
set PS=C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
set PS=%PS%\powershell.exe


"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" C:\Users\XML.ps1 -i C:\Users\A2.txt -j C:\Users\Fb.xml

echo %ERRORLEVEL% > "%log%"

Я пробовал этот скрипт, чтобы получить пользовательский уровень ошибки. Если он найден, он вернет 123, в противном случае 456. Но он всегда дает мне 1.

* 1005.*

Ответы [ 2 ]

2 голосов
/ 12 марта 2019

Измените Exit на Return. Выход выйдет из вашего скрипта. Return вернет значения, которые вы хотите.

0 голосов
/ 12 марта 2019

Проблема в командном файле.Должно быть так:

set log=C:\Users\PowerShell\XML\Log.txt
set PS=C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
set PS=%PS%\powershell.exe -ExecutionPolicy Bypass -File


"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -File C:\Users\XML.ps1 -i C:\Users\A2.txt -j C:\Users\Fb.xml

echo %ERRORLEVEL% > "%log%"

Для первого скрипта PowerShell уже правильно.

...