2016-08-05 10 views
0

Ich versuche, einen Wecker Batch-Datei zu machen, und dies ist der Alarm Teil der Datei,Batch-Datei zeigt Fehler, wenn ein in-Speicherort der Datei erstellt wird

:a1 
cls 
goto invalid 
:invalid 
if %time%==%t2% goto b 
if not %time%==%t2% goto invalid 
:b 

%% t2 Vorerst der Alarm sollte ausgehen und% time% ist die aktuelle Zeit; Wenn ich dieses Skript ausführe, wird jedoch angezeigt, dass '' invalid 'nicht als interner oder externer Befehl, ausführbares Programm oder Batch-Datei erkannt wird. " Ich kann für mein Leben nicht herausfinden, warum es das tut und das Skript nicht unter ": ungültig" ausführt, es springt einfach zu: b.

+3

Ich bin ganz sicher, variable '% t2%' leer ist, so dass die 'if' Aussage wird beeinträchtigt; Verwenden Sie ein Zitat wie 'if% time%" == "% t2%" ', um dies zu vermeiden; Wo und wie setzt du% t2%? Haben Sie vielleicht Leerzeichen in Ihrer 'set' Anweisung wie' set t2 = ... ', obwohl es 'set t2 = ...' oder besser' set 't2 = ... "'? und anstelle von sequentiellem 'if' und' if not' für die gleiche Bedingung könnten Sie 'if"% time% "=="% t2% "(...) else (...)' ... – aschipfl

+0

Was? ist das Format Ihrer '% time%' Variable? Dies kann auch einige Probleme verursachen. – Squashman

+0

Die Variable% t2% wird vorher gesetzt, und das Zeitformat ist HH: MM: SS.MS (15: 15: 15.15 für 3:15 und 15.15 Sekunden) Ich habe dies schon einmal gemacht, und t2 wird mit a gesetzt "set/p t2 =" –

Antwort

0

dies und nach Fehlern Versuchen falls vorhanden:

:a1 
cls 
:invalid 
if %time%==%t2% (goto :b 
) else (goto :invalid) 
:b