hab in einem anderen Post das gleiche Problem gepostet - aber im
Zusammenhang mit Python - es scheint aber eher schon ein meinen CMD
Verständnis zu hängen, also hab ich einen gesonderten Post gemacht nur
auf diesem Thema bezogen
Problem: mein CMD Aufruf verhält sich nur deterministisch so lange ich
keine anderen Kommandos zwischen drin aufrufe (oder so in der Art)
mini.bat
1 | @echo off
|
2 | set neue_var=neuer_wert
|
3 | exit /b 123
|
als Hausaufgabe formuliert :)
"Ziel ist es das Environment und den ErrorLevel der Batch-Datei zu
bekommen
ohne diese zu verändern oder eine weitere Batch-Datei drumherum zu
bauen"
die Aufgabe löse ich mit:
1 | mini.bat & echo %errorlevel% > errorlevel.txt & set > env.txt
|
in einem Kontext wird die test Batch-Datei gestartet, ihr errorlevel und
das zu dem Zeitpunkt bestehende Environment in Dateien geschoben
funktioniert auch alles - nur mein Errorlevel verhält sich manchmal
komisch
in der Konsole führe ich folgendes aus: (schön mit Cursor-Rauf und
Enter)
1 | 1. mini.bat & echo %errorlevel% > errorlevel.txt & set > env.txt
|
2 | --> in externem Editor sehe ich 123 in errorlevel.txt
|
3 | 2. mini.bat & echo %errorlevel% > errorlevel.txt & set > env.txt
|
4 | --> in externem Editor sehe ich 123 in errorlevel.txt
|
5 | 3. type errorlevel.txt
|
6 | --> printet 123 auf die Konsole
|
7 | 4. mini.bat & echo %errorlevel% > errorlevel.txt & set > env.txt
|
8 | --> in externem Editor sehe ich 0 in errorlevel.txt ?????
|
9 | 5. mini.bat & echo %errorlevel% > errorlevel.txt & set > env.txt
|
10 | --> in externem Editor sehe ich wieder 123 in errorlevel.txt
|
warum ist mein errorlevel plötzlich 0 wenn ich zwischendurch mal type
aufrufe?
das selbe passiert wenn ich den Testablauf in eine eigene Batch-Datei
stecke
mini_run.bat
1 | call mini.bat & echo %errorlevel% > errorlevel.txt & set > env.txt
|
2 | pause
|
3 | call mini.bat & echo %errorlevel% > errorlevel.txt & set > env.txt
|
4 | pause
|
5 | type errorlevel.txt
|
6 | pause
|
7 | call mini.bat & echo %errorlevel% > errorlevel.txt & set > env.txt
|
8 | pause
|
9 | call mini.bat & echo %errorlevel% > errorlevel.txt & set > env.txt
|
10 | pause
|
kann mir das ein Batch-Guru erklären - oder meinen trivial "Fehler"
aufzeigen?