CMD time kürzen

  • Ersteller Ersteller reaper2k11
  • Erstellt am Erstellt am
R

reaper2k11

Gast
Es gibt ja unter cmd den time Befehl. Wie kann ich eine Variable füllen, welche mir nur die Stunde als ein/zweistellige Zahl ausgibt?
 
http://technet.microsoft.com/en-us/library/bb491015.aspx
http://in.answers.yahoo.com/question/index?qid=20100816021807AAz6eL3

/edit:
2ten link ohne min, sek, millsek

Code:
@echo off
rem Get the current system time
set x=%TIME%

rem Uncomment the next line to see what the real time is, which includes milliseconds
rem echo %x%

rem Find the token ':' in the value 'x'
rem The system time is returned like this: 10:13:29.40
rem so we have to break it out using the 'cut' function in DOS
for /f "tokens=1,2 delims=:" %%m in ('echo %x%') do set hour=%%m
for /f "tokens=2,3 delims=:" %%m in ('echo %x%') do set min=%%m
for /f "tokens=3,4 delims=:" %%m in ('echo %x%') do set s=%%m
for /f "tokens=1,2 delims=." %%m in ('echo %s%') do set sec=%%m
for /f "tokens=2,3 delims=." %%m in ('echo %s%') do set msec=%%m
echo Hour = %hour%
pause
ergebnis jetzt um 00:17uhr: hour = 0
 
Zuletzt bearbeitet:
Code:
set str=%date%
set tme=%time%
for /f "tokens=1,2,3* delims=." %%i in ("%str%") do set str=%%k-%%j-%%i
for /f "tokens=1,2,3,4* delims=:.," %%i in ("%tme%") do set tme=%%i-%%j-%%k-%%l
Datum und Uhrzeit
 
Entweder ich verstehe die Frage falsch, oder ihr seid irgendwie umständlich.

Code:
%time:~0,2%
 
Warum umständliche und fehlerbehaftete Stringoperationen durchführen, wenn eine saubere Trennung an vorgegebenen Zeichen möglich ist, die ohne Probleme auf andere regionale Einstellungen erweitert werden kann?
 
Wenn ich die Frage jetzt irgendwie beantworten muss, fällt mir da nur ein,
weniger Code, weniger Rechenaufwand.

Dass es über eine Schleife mit Trennzeichen flexibler ist, streite ich nicht ab, erschien mir aber zuviel des Guten.
Das mag auch der TE anders sehen... wodurch in diesem Kontext aber Fehler auftreten könnten, musst Du mir wohl unter die Nase halten. Ich seh nix. (Nicht dass das bei mir etwas Ungewöhnliches wäre...) :D
Und warum das umständlicher ist, erschließt sich mir auch nicht auf anhieb.
 
chibbi schrieb:
weniger Rechenaufwand.
Das lass ich in Zeiten von Okta- und Dodekacores, SSD und 8+ GB RAM einfach mal so stehen, vor allem in Verbindung mit Batch Scripten. ;)
chibbi schrieb:
Und warum das umständlicher ist, erschließt sich mir auch nicht auf anhieb.
Wie beschrieben: Sobald andere regionale Einstellungen greifen, hast du evtl. ein Problem. Nur weil bei dir die Zeit auf hh:mm steht, kann es beim TE ja auch auf h:m:s stehen. Also hättest du mit deinem Ausschnitt bei allen Stunden < 10 Probleme und er würde dir bspw. 0: herausschneiden. Deswegen trennt man doch lieber an einem bekannten Begrenzer.

Wenn man nur die Stunden herausschneiden will, würde natürlich auch folgendes reichen:
Code:
set stunden=0
for /f "tokens=1 delims=:.," %%i in ("%time%") do set stunden=%%i
Genug klug geschissen. :D Natürlich funktioniert deine Variante. Dann musst du aber auch genau wissen, dass die Formatierung entsprechend gesetzt ist.
 
chibbi schrieb:
Entweder ich verstehe die Frage falsch, oder ihr seid irgendwie umständlich.

Code:
%time:~0,2%

Ui das ist ja ganz schön cool. Weniger Code ist immer gut ;)
Sry dass ich erst jetzt antworte
 
Zurück
Oben