Batch-Befehl geht in CMD, spinnt in Batch-Datei?!

Guten Abend zusammen.
Ich brüte mal wieder über einem mir selbst auferlegten „Monsterprojekt“, und scheitere mal wieder an dem, was ich an der Batchprogrammierung am meisten hasse - dem Befehl „for“.
Folgende Anwendung von For wurde unter Einbringung einer Menge wertvollen Gehirnschmalzes produziert:

for /f "tokens=1,2,3\* delims=:," %i IN ("%time%") do @set zeit=%i-%j,%k

Sie soll in die Variable „Zeit“ die aktuelle Uhrzeit im Format SS-MM,SS ausgeben. Die normale Time-Variable könnte das auch, dumm nur - die hat Doppelpunkte. Und da diese Zeit-Variable später in Dateinamen verwendet wird, machen sich da Doppelpunkte nicht so gut.
Ich gebe den Befehl also in die Kommandokonsole ein, toll - geht. Uhrzeit in der Variable. Schreib ichs in eine leere Batch-Datei, ausführen - mist. Folgende Fehlermeldung:

"timei-k" kann syntaktisch an dieser Stelle nicht verarbeitet werden

Hm. Super. Irgendwelche Ideen?
Mfg,
Max

Sie soll in die Variable „Zeit“ die aktuelle Uhrzeit im Format
SS-MM,SS ausgeben. Die normale Time-Variable könnte das auch,
dumm nur - die hat Doppelpunkte. Und da diese Zeit-Variable
später in Dateinamen verwendet wird, machen sich da
Doppelpunkte nicht so gut.
Ich gebe den Befehl also in die Kommandokonsole ein, toll -
geht. Uhrzeit in der Variable. Schreib ichs in eine leere
Batch-Datei, ausführen - mist. Folgende Fehlermeldung:

„timei-k“ kann syntaktisch an dieser Stelle nicht
verarbeitet werden

Hallo Max,

in der Batch nicht %i sondern %%i benutzen.

for /f „tokens=1,2,3* delims=:,“ %%i IN ("%time%") do @set zeit=%%i-%%j,%%k
echo %zeit% > c:\test\z.txt

Gruß
Reinhard

Hallo Reinhard,
Verdammt - der Teufel steckt im Detail, nicht wahr? :smiley:
Ich danke dir für die schnelle Antwort :smile: Was aber wohl als ungeklärt ad acta gelegt wird - warum geht der dumme Befehl dann in der Konsole?
Ist ja schlimmer als bei C++ :wink:. Obwohl. Ne, doch nicht. Diese Sprache ist von Dämonen besessen.
Naja, hauptsache es geht jetzt.
Mfg,
Max

P.S. Folgender Eintrag sollte entussistische… ehtnussasche… begeisterte C+±Programmierer von nicht beleidigen, aber irgendwie hab ich recht :smiley:.

OT^3: Batch-Befehl geht in CMD, spinnt in Batch-Da

Hallo Reinhard,
Verdammt - der Teufel steckt im Detail, nicht wahr? :smiley:
Ich danke dir für die schnelle Antwort :smile: Was aber wohl als
ungeklärt ad acta gelegt wird - warum geht der dumme Befehl
dann in der Konsole?
Ist ja schlimmer als bei C++ :wink:. Obwohl. Ne, doch nicht.
Diese Sprache ist von Dämonen besessen.

Naja, es ist imemr dann ein problem mit zeichen, wenn das zeichen schon eine bedeutung hat, und deswegen eben falsch gedeutet wird. Ohne diese probleme, gäbe es viele andere probleme :smile: