Was stimmt nicht mit diesem Batch-Skript?

... komplette Frage anzeigen

2 Antworten

Durch Voranstellen einer Ziffer bei > kannst du festlegen, welche Ausgabe eines Befehls umgeleitet wird. "1>" oder nur ">" steht für die erfolgreiche Ausgabe eines Befehls, während "2>" für die fehlerhafte Ausgabe eines Befehls steht. Die Bedeutung anderer Ziffern kenne ich leider nicht.

In deiner Datei wird nun folgendes ausgeführt:

echo 1>hunger.txt
echo 0>hunger.txt
echo 1>hunger.txt
usw.

Bei den Einsen wird die erfolgreiche Ausgabe des Befehls "echo " umgeleitet, was "ECHO ist eingeschaltet (ON)." entspricht. Versuchst du nun, zu dieser Zeichenfolge eins dazuzuaddieren, kommt 0 raus. Die 0te Ausgabe von "echo " ist leer, somit wird "hunger.txt" auch leer sein. Addierst du zu nichts eins, kommt eins raus.

Nach der Logik sollte in deiner Datei also wechselweise nichts oder "ECHO ist eingeschaltet (ON)." stehen.

Um das Problem zu umgehen, kannst du

echo %count% > hunger.txt

benutzen, wo zwischen dem Zähler und dem > ein Leerzeichen ist.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von BPTVEu
27.12.2015, 15:54

Das verstehe ich. Aber bei deiner Umgehungsvariante wird dann jede Sekunde ein Leerzeichen hintern dran gehängt, und das finde ich doof. Kann man das auch umgehen?

0

Übrigens: Das "Codebeispiel" hat nicht funktioniert.

Jetzt aber...

:Loop

title %Count%

set /p Count=<hunger.txt

ping -n 10 127.0.0.1

set /a Count=%Count% + 1

echo %Count%>hunger.txt

goto loop

Antwort bewerten Vielen Dank für Deine Bewertung