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, 1356 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 ..
Ähnliche Inhalte
Microsoft
Batch kombiniert mit PDFCreator

Frage von Sascha123456 zum Thema Microsoft ...

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
Batch als Dienst bei Systemstart ohne Anmeldung ausführen (5)

Tipp von tralveller zum Thema Batch & Shell ...

Batch & Shell
Batch mit forfiles - Dateiendung filtern - Dateien löschen (2)

Frage von mschaedler1982 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (24)

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

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Windows Server
Exchange HyperV Prozessorlast (18)

Frage von theoberlin zum Thema Windows Server ...

Hardware
16-20 Port POE Switch mit VLAN (18)

Frage von thomasreischer zum Thema Hardware ...