Batch Error-Ergebnisse unterscheiden sich von CMD?
-
30-09-2019 - |
Frage
Warum Error-verhalten sich anders in diesen beiden Fällen?
in der Befehlszeile:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\>aescrypt.exe -v 2> NUL
C:\>echo %errorlevel%
9009
Versus von Batch-Datei:
@echo off
set /P C="> "?
set or=
if "%C%"=="a" set or=1
if "%C%"=="A" set or=1
if defined or (
aescrypt.exe -v 2> NUL
echo %errorlevel%
)
Ergebnis:
> a
1
Lösung
Entfernen Sie „@ echo off“ und sehen, wie der Code ausgeführt wird. Sie können feststellen, dass die Errorlevel in Beispiel 2 ist das Ergebnis der „if definiert“.
Auch versuchen Sie dies:
@echo off
set /P C="> "?
set or=
if /i "%C%"=="a" set or=1
if not defined or goto SKIP
aescrypt.exe -v 2> NUL
echo %errorlevel%
:SKIP
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow