W pliku wsadowym w systemie Windows używam 7-zip w następujący sposób:
...\right_path\7z a output_file_name.zip file_to_be_compressed
Jak mogę sprawdzić kod wyjścia 7z
i podjąć odpowiednie działania?
windows-xp
batch
Misza Moroszko
źródło
źródło
Odpowiedzi:
Sprawdź, czy kod powrotu jest większy lub równy 1:
lub
lub przetestuj kod powrotu równy 0:
Możesz użyć innych poleceń, takich jak
GOTO
gdzie pokazujęecho
.źródło
0 was unexpected this time.
%ERRORLEVEL%
wynosi 0, mimo że wystąpił błąd. Zdarzyło się podczas%ERRORLEVEL%
wpisywania pliku cmd. Próbowaniestart /wait
nie zadziałało. Jedyne, co zadziałało, toif errorlevel 1 (...)
NEQ
zamiastEQU
obsługi wykrywania ujemnych kodów powrotu? Nie mam pojęcia, czy Windows XP to robi, ale w nowoczesnych systemach Windows jest to rzecz…To naprawdę działa, gdy masz: App1.exe wywołuje -> .bat, który działa -> app2.exe
App2 zwraca poziom błędu 1 ... ale musisz go złapać w .bat i ponownie podnieść do app1 ... w przeciwnym razie .bat zjada poziom błędu, a app1 nigdy nie wie.
Metoda:
W .bat:
Jest to sprawdzanie poziomu błędu po aplikacji2. Jeśli> 0, to .bat kończy działanie i ustawia poziom błędu na 1 dla aplikacji wywołującej 1.
źródło
if %ERRORLEVEL% GEQ 1 EXIT /B %ERRORLEVEL%
.IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
może być lepszym rozwiązaniem. Ale naprawdę musisz wiedzieć, co program zwraca w przypadku błędów. Niektóre programy zwracają pewne niezerowe kody dla specjalnych rodzajów sukcesu.