Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Zeitstempel erzeugen in Batch Routinen - Bei Stunde wird die Null nicht angezeigt

Frage Entwicklung Batch & Shell

Mitglied: B-Real

B-Real (Level 1) - Jetzt verbinden

17.07.2013 um 09:16 Uhr, 1345 Aufrufe, 5 Kommentare, 3 Danke

Hallo Community,

in meinen Batch Routinen verwende ich gerne diesen nützlichen Code um einen Zeitstempel zu erzeugen. Also wenn ich Dateien mit Zeitstempel umbenennen muss, oder in eine Log Datei einen Zeitstempel schreiben will. Kann sein dass ich es sogar hier im Forum gefunden habe, bin mir nicht mehr sicher.

01.
REM Zeitstempel erzeugen 
02.
for /f "tokens=1-4 delims=. " %%i in ("%date%") do ( 
03.
  set day=%%i 
04.
  set month=%%j 
05.
  set year=%%k 
06.
07.
 
08.
for /f "tokens=1-4 delims=.:, " %%i in ("%time%") do ( 
09.
 set hour=%%i 
10.
 set minute=%%j 
11.
 set second=%%k 
12.
 set hundredth=%%l 
13.
)
Aufruf zum Zeitstempel erzeugen in meinen Batch Routinen immer via:

01.
call %SystemPath%\TheTime.cmd
Anschließend benenne ich meine Dateien im Batch um, zB mit

01.
ren *.bew FILE.L%hour%%minute%%second%
Das Problem:
Das funktioniert auch, ABER: Aus irgendeinem mir unbekannten Grund wird bei allen Dateien, die vor 10 Uhr vormittags umbenannt werden, die Null bei der Stunde (%hour%) weggelassen.

Zum Beispiel:
  • FILE.L73013 (anstatt FILE.L073013)
  • FILE.L84002 (anstatt FILE.L084002)
  • FILE.L85002 (anstatt FILE.L085002)

Nach 10 Uhr gibt es natürlich keine Null mehr in der Stunde, da passt es dann:
  • FILE.L104001
  • FILE.L144002

Hat jemand eine Idee woran das liegen kann? Danke
Mitglied: bastla
17.07.2013, aktualisiert um 09:35 Uhr
Hallo B-Real!

Einstellige Stundenwerte enthalten in %time% ein führendes Leerzeichen - daher besser:
01.
for /f "tokens=1-4 delims=.:," %%i in ("%time%") do ( 
02.
 set hour=%%i 
03.
 set minute=%%j 
04.
 set second=%%k 
05.
 set hundredth=%%l 
06.
07.
set "hour=%hour: =0%"
Grüße
bastla
Bitte warten ..
Mitglied: volkerw
17.07.2013 um 09:46 Uhr
Hallo B-Real,

da hat bastla recht, time liefert nun mal keine führende Null, aber time /t macht das.
Ersetze einfach "%time%" durch 'time /t', damit geht's.

Gruß
Volker
Bitte warten ..
Mitglied: B-Real
17.07.2013, aktualisiert um 10:07 Uhr
Danke für eure Antworten bastla und Volker,

ich habe es mit 'time /t' versucht, aber dann fehlen die Sekunden und Millisekunden. Dafür steht die Stunde richtig da .

Hm evtl. könnte ich eine Kombination aus beiden Varianten basteln, die dann funktioniert.
Bitte warten ..
Mitglied: volkerw
17.07.2013 um 10:22 Uhr
Stimmt, die Sekunden werden bei time /t nicht geliefert, aber warum eine Kombination basteln ?
Bastlas Vorschlag ist die Lösung, das sollte auf jeden Fall funktionieren.
Bitte warten ..
Mitglied: B-Real
17.07.2013 um 10:56 Uhr
Du hast natürlich Recht Volker, ich hatte übersehen dass bastla in der ersten Zeile ein Leerzeichen entfernt hatte.

01.
for /f "tokens=1-4 delims=.:," %%i in ("%time%") do ( 
Bei mir war da immer noch ein Leerzeichen nach dem delims. Somit klappt es perfekt und ist als Gelöst markiert.

Danke euch beiden!
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Verschlüsselung & Zertifikate
gelöst Revocation Server innerhalb der PKI wird als offline angezeigt (1)

Frage von Snipes zum Thema Verschlüsselung & Zertifikate ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...