Ich habe eine Fledermaus-Datei, die nach 23:00 Uhr Timing und Kicks einiger weiterer Schritte nach 23:00 Uhr überprüft.Bat-Datei, wenn vor 9 Uhr ausgeführt, gibt den Fehler, ungültige Nummer. Numerische Konstanten sind entweder Dezimal (17),
Die Charge, wenn später auf 10:00 AM
gestartet wird, funktioniert. Aber die gleichen Schläger, wenn sie bei 09:00 AM
lief nicht und wirft wie unten einen Fehler funktioniert:
Invalid number. Numeric constants are either decimal (17),
hexadecimal (0x11), or octal (021).
Ich habe beobachtet, dass diese BAT-Datei nur für eine zweistellige Stunde arbeitet und nicht die einstelligen Stunden so als 1,2,3,4,5,6,7,8,9
.
Code:
@For /F "tokens=1,2,3,4 delims=/-: " %%A in ('time /t') do @(
Set Hour=%%A
Set Minute=%%B
)
echo current hour is %Hour%
echo current Minute is %Minute%
set /A remaining_hour=23-%Hour%
set /A remaining_minutes=60-%Minute%
echo Remaining hours to reach 23:00 is %remaining_hour%
echo Remaining Minutes to reach 23:00 is %remaining_minutes%
Könnten Sie mir bitte helfen, loszuwerden, die Fehlermeldung zu bekommen?
Modified Code unten gemäß den Vorschlägen, die immer noch nicht funktionieren, wenn ich die bat-Datei mit meiner Systemzeit 09.00 Uhr
Modified Code 1 geändert versuchen zu testen:
@echo off
@For /F "tokens=1,2,3,4 delims=/-: " %%A in ('time /t') do @(
Set Hour=%%A
for /F "tokens=* delims=0" %%N in ("%Hour%") do set "Hour=%%N" & set /A "Hour+=0"
Set Minute=%%B
)
setlocal EnableDelayedExpansion
echo current hour is %Hour%
echo current Minute is %Minute%
set /A remaining_hour=23-%Hour%
set /A remaining_minutes=60-%Minute%
echo Remaining hours to reach 23:00 is %remaining_hour%
echo Remaining Minutes to reach 23:00 is %remaining_minutes%
set /A sleep_Minutes=((remaining_minutes+(60*remaining_hour))*60)
echo Total sleep time is %sleep_Minutes%
pause
Hinweis: Run in einem Eingabeaufforderungsfenster 'set /?' und lese alle Ausgabehilfeseiten. Auf der letzten Hilfeseite können Sie einige spezielle Umgebungsvariablen wie 'DATE' und' TIME' lesen. Ja, Sie brauchen den Befehl 'time/t' nicht und verarbeiten die Ausgabe mit dem Befehl' for'. Es gibt die Umgebungsvariable TIME, die die aktuelle Zeit enthält. Führen Sie im Eingabeaufforderungsfenster 'echo% TIME%' aus, um den aktuellen Wert und das für die Zeitzeichenfolge verwendete Format gemäß den Regions- und Spracheinstellungen anzuzeigen. – Mofi