Discussion:
YYYYMMDDHHMMSS in Batch
(zu alt für eine Antwort)
Anselm Rapp
2011-08-09 11:08:02 UTC
Permalink
Hallo,

bin ich hier richtig? Ich will in einer Batchdatei unter Windows XP
Datum und Uhrzeit im Format YYYYMMDDHHMMSS erzeugen. Das

SET ZEIT=%TIME%
SET ZEIT=%ZEIT: =0%
SET ZEIT=%ZEIT::=%
SET ZEIT=%ZEIT:,=%

set stunde=%ZEIT:~-8,2%
set minute=%ZEIT:~-6,2%
set sekunde=%ZEIT:~-4,2%

set zeit=%stunde%%minute%%sekunde%

habe ich ergoogelt, erzeugt bei mir aber YYYYMMDDHHMMSSSS (letzte zwei
Stellen beachten, sicher die Hundertstelsekunden). Eben diese zu
eliminieren, überschreitet meinen Durchblick. Was muss ich tun?

Danke für Unterstützung,

Anselm
--
Bitte in der Newsgroup antworten.
Herbert Kleebauer
2011-08-09 12:13:51 UTC
Permalink
Post by Anselm Rapp
Hallo,
bin ich hier richtig? Ich will in einer Batchdatei unter Windows XP
Datum und Uhrzeit im Format YYYYMMDDHHMMSS erzeugen. Das
SET ZEIT=%TIME%
SET ZEIT=%ZEIT: =0%
SET ZEIT=%ZEIT::=%
SET ZEIT=%ZEIT:,=%
set stunde=%ZEIT:~-8,2%
set minute=%ZEIT:~-6,2%
set sekunde=%ZEIT:~-4,2%
set zeit=%stunde%%minute%%sekunde%
habe ich ergoogelt, erzeugt bei mir aber YYYYMMDDHHMMSSSS (letzte zwei
Stellen beachten, sicher die Hundertstelsekunden). Eben diese zu
eliminieren, überschreitet meinen Durchblick. Was muss ich tun?
Das hängt von deinem Format von %date% und %time% ab. Was erhälts du bei

echo %date%
echo %time%

Bei dem deutschen Standardformat

09.08.2011
14:01:23,55

sollte obiges oder kürzer:

:loop
set zeit=%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%
if not %zeit%==%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2% goto :loop
echo %zeit%

funktionieren. Gib set /? für eine Hilfe zum Set Kommando ein.
Anselm Rapp
2011-08-09 16:58:06 UTC
Permalink
Post by Herbert Kleebauer
:loop
set zeit=%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%
if not %zeit%==%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2% goto :loop
echo %zeit%
Recht vielen Dank! Das klappt tadellos.

Gruß, Anselm
--
Bitte in der Newsgroup antworten.
Anselm Rapp
2011-08-25 07:20:10 UTC
Permalink
Post by Anselm Rapp
Post by Herbert Kleebauer
:loop
set
zeit=%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%
if not
%zeit%==%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%
goto :loop
echo %zeit%
Recht vielen Dank! Das klappt tadellos.
Dachte ich. Jetzt klappt es nicht mehr. Und zwar bekomme ich als
Ergebnis aktuell 20110825 90310 (statt 20110825090310). Ich vermute, das
ist der Grund dafür, dass der Batch nicht bis zu Ende läuft, sondern
ohne echo %zeit% aussteigt.

Was der Grund für die nunmehrige Fehlfunktion ist (und auch, wozu die
Zeile if not ... gut ist), ist mir leider zu hoch.

Ich hoffe, Du liest es noch und kannst helfen, denn gerade jetzt müsste
ich den Batch, der Deine Datumserzeugung verwendet, wieder laufen lassen.

Danke im Voraus,

Anselm
--
Bitte in der Newsgroup antworten.
Anselm Rapp
2011-08-25 07:57:02 UTC
Permalink
Post by Anselm Rapp
Was der Grund für die nunmehrige Fehlfunktion ist (und auch, wozu die
Zeile if not ... gut ist), ist mir leider zu hoch.
Den Grund für die Zeile if not ... hast Du ja schon erklärt, sorry.

Gruß, Anselm
--
Bitte in der Newsgroup antworten.
Herbert Kleebauer
2011-08-25 08:02:05 UTC
Permalink
Post by Anselm Rapp
Post by Anselm Rapp
Post by Herbert Kleebauer
:loop
set
zeit=%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%
if not
%zeit%==%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%
goto :loop
echo %zeit%
Recht vielen Dank! Das klappt tadellos.
Dachte ich. Jetzt klappt es nicht mehr. Und zwar bekomme ich als
Ergebnis aktuell 20110825 90310 (statt 20110825090310). Ich vermute, das
ist der Grund dafür, dass der Batch nicht bis zu Ende läuft, sondern
ohne echo %zeit% aussteigt.
Was der Grund für die nunmehrige Fehlfunktion ist (und auch, wozu die
Der Grund ist, daß die einstellige Uhrzeit nicht als "09" sondern als " 9"
angezeigt wird. In der "if not" Zeile "" einfügen und dahinter set zeit=%zeit: =0%
(oder bis nach Mittag warten, dann ist die Zeit wieder zweistellig).
Post by Anselm Rapp
Zeile if not ... gut ist), ist mir leider zu hoch.
Falls das Programm um Mitternacht ausgeführt wird, kann das Datum vom
alten und die Zeit vom neuen Tag sein. Deshalb wird die Abfrage zweimal
gemacht.


:loop
set zeit=%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%
if not "%zeit%"=="%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%" goto :loop
set zeit=%zeit: =0%
echo %zeit%
Anselm Rapp
2011-08-25 08:27:16 UTC
Permalink
Post by Herbert Kleebauer
Post by Anselm Rapp
Was der Grund für die nunmehrige Fehlfunktion ist (und auch, wozu die
Der Grund ist, daß die einstellige Uhrzeit nicht als "09" sondern als " 9"
angezeigt wird. In der "if not" Zeile "" einfügen und dahinter set zeit=%zeit: =0%
(oder bis nach Mittag warten, dann ist die Zeit wieder zweistellig).
Nachdem ich mein eigener Chef bin, kann ich solche Verzögerungen nicht
tolerieren. :-)

Ist eben vormittags als Bestandteil meines Gesamt-Batch problemlos
gelaufen. Vielen Dank.

Gruß, Anselm
--
Bitte in der Newsgroup antworten.
Ralph 'rkhb' Bauer
2011-08-09 16:53:53 UTC
Permalink
Post by Anselm Rapp
bin ich hier richtig? Ich will in einer Batchdatei unter Windows XP
Datum und Uhrzeit im Format YYYYMMDDHHMMSS erzeugen.
setlocal enableextensions enabledelayedexpansion
SET Z=!TIME!
SET D=!DATE!
SET JAH=!D:~6,4!
SET MON=!D:~3,2!
SET TAG=!D:~0,2!
SET STD=!Z:~0,2!
SET MIN=!Z:~3,2!
SET SEK=!Z:~6,2!
SET ZEIT=!JAH!!MON!!TAG!!STD!!MIN!!SEK!

viele grüße
ralph
Anselm Rapp
2011-08-09 17:01:58 UTC
Permalink
Post by Ralph 'rkhb' Bauer
setlocal enableextensions enabledelayedexpansion
SET Z=!TIME!
SET D=!DATE!
SET JAH=!D:~6,4!
SET MON=!D:~3,2!
SET TAG=!D:~0,2!
SET STD=!Z:~0,2!
SET MIN=!Z:~3,2!
SET SEK=!Z:~6,2!
SET ZEIT=!JAH!!MON!!TAG!!STD!!MIN!!SEK!
Du bist chronologisch Zweiter, aber das Ergebnis ist genau so gut.

Danke!

Anselm
--
Bitte in der Newsgroup antworten.
Ralph 'rkhb' Bauer
2011-08-09 17:05:50 UTC
Permalink
Post by Anselm Rapp
Du bist chronologisch Zweiter, aber das Ergebnis ist genau so gut.
Danke.

Ich hab Herbert noch gar nicht auf meinem Bildschirm :-(
Ach, ich trauere dem alten Tonline-Server nach...

viele grüße
ralph
Ulrich F. Heidenreich
2011-08-10 14:31:53 UTC
Permalink
Post by Ralph 'rkhb' Bauer
Ich hab Herbert noch gar nicht auf meinem Bildschirm
Ach, ich trauere dem alten Tonline-Server nach...
Weil er den aioe-Trollserver nicht boykottierte? Sei froh, daß Dir
Solani diesen Müll erspart! Und sollte dieser "Herbert" wider Erwarten
kein Müll gewesen sein, war er/es halt Kollateralschaden.

CU!
Ulrich
--
In 4 Monaten und 15 Tagen ist Weihnachten
Programme, soviel ihr wollt; Preise, die ihr selbst bestimmt:
Schaut einfach mal auf ftp://warez.invalid.de rein
Stellt euch vor, es ist Mittwoch und keiner geht hin!
Ralph 'rkhb' Bauer
2011-08-10 16:48:06 UTC
Permalink
Post by Ulrich F. Heidenreich
Post by Ralph 'rkhb' Bauer
Ich hab Herbert noch gar nicht auf meinem Bildschirm
Ach, ich trauere dem alten Tonline-Server nach...
Weil er den aioe-Trollserver nicht boykottierte? Sei froh, daß Dir
Solani diesen Müll erspart! Und sollte dieser "Herbert" wider Erwarten
kein Müll gewesen sein, war er/es halt Kollateralschaden.
Herbert Kleebauer ist weder Troll noch Müll - im Gegenteil! (!!!1elf).
Und wenn er beschließt, über Aioe zu posten, dann ist das allein ein
Grund, Aioe empfangen zu können. Ich konnte und kann nirgendwo erfahren,
dass und nach welchen Gesichtspunkten Solani Zensur übt. Jetzt fange ich
sogar an, Zensursula, Schäuble und Guttenberg nachzutrauern - denen hat
das deutschsprachige Usenet wenigstens noch Widerstand entgegengebracht.

Wg. OT: EOD

viele grüße
ralph
Christoph Sternberg
2011-08-10 17:22:58 UTC
Permalink
Post by Ralph 'rkhb' Bauer
Und wenn er beschließt, über Aioe zu posten, dann ist das allein ein
Grund, Aioe empfangen zu können.
Bei mir isser durchgefallen, weil /ich/ aioe filtere ;-)

Christoph Sternberg */\
Ulrich F. Heidenreich
2011-08-11 07:48:13 UTC
Permalink
Post by Ralph 'rkhb' Bauer
Post by Ulrich F. Heidenreich
Post by Ralph 'rkhb' Bauer
Ich hab Herbert noch gar nicht auf meinem Bildschirm
Ach, ich trauere dem alten Tonline-Server nach...
Weil er den aioe-Trollserver nicht boykottierte? Sei froh, daß Dir
Solani diesen Müll erspart! Und sollte dieser "Herbert" wider Erwarten
kein Müll gewesen sein, war er/es halt Kollateralschaden.
Herbert Kleebauer ist weder Troll noch Müll - im Gegenteil! (!!!1elf).
Ich wollte Dir nur Bescheid geben, warum Du Werners Beiträge nicht zu
Gesicht bekommst.
Post by Ralph 'rkhb' Bauer
Und wenn er beschließt, über Aioe zu posten, dann ist das allein ein
Grund, Aioe empfangen zu können.
<Gerber> Schwachfug </>.

Wenn ein Delikatessenladen in der Müllhalde haust, ist das mit Nichten
ein Grund, die Müllhalde zu durchwühlen, sondern eher ein Grund für den
Laden, sich eine andere Gegend zu suchen.
Post by Ralph 'rkhb' Bauer
Ich konnte und kann nirgendwo erfahren,
dass und nach welchen Gesichtspunkten Solani Zensur übt.
Es ist keine Zensur. Jeder Serverbetreiber kann sich seinw Peers selbst
aussuchen. Wenn Daniel nicht mit aioe peert, dann ist das eine weise
Entscheidung, um seinen Server sauberzuhalten, aber keine Zensur.

CU!
Ulrich

Xpost nach de.comp.os.msdos und de.comm.provider.usenet
Followup-To nach de.comm.provider.usenet
--
In 4 Monaten und 14 Tagen ist Weihnachten
Programme, soviel ihr wollt; Preise, die ihr selbst bestimmt:
Schaut einfach mal auf ftp://warez.invalid.de rein
Stellt euch vor, es ist Donnerstag und keiner geht hin!
Herbert Kleebauer
2011-08-09 18:02:53 UTC
Permalink
Post by Anselm Rapp
Post by Ralph 'rkhb' Bauer
setlocal enableextensions enabledelayedexpansion
SET Z=!TIME!
SET D=!DATE!
SET JAH=!D:~6,4!
SET MON=!D:~3,2!
SET TAG=!D:~0,2!
SET STD=!Z:~0,2!
SET MIN=!Z:~3,2!
SET SEK=!Z:~6,2!
SET ZEIT=!JAH!!MON!!TAG!!STD!!MIN!!SEK!
Du bist chronologisch Zweiter, aber das Ergebnis ist genau so gut.
Sofern du es nicht genau um Mitternacht ausführst.
Anselm Rapp
2011-08-10 19:54:37 UTC
Permalink
Post by Herbert Kleebauer
Post by Anselm Rapp
Post by Ralph 'rkhb' Bauer
setlocal enableextensions enabledelayedexpansion
SET Z=!TIME!
SET D=!DATE!
SET JAH=!D:~6,4!
SET MON=!D:~3,2!
SET TAG=!D:~0,2!
SET STD=!Z:~0,2!
SET MIN=!Z:~3,2!
SET SEK=!Z:~6,2!
SET ZEIT=!JAH!!MON!!TAG!!STD!!MIN!!SEK!
Du bist chronologisch Zweiter, aber das Ergebnis ist genau so gut.
Sofern du es nicht genau um Mitternacht ausführst.
Oh. Erklärst Du's bitte?

Gruß, Anselm
--
Bitte in der Newsgroup antworten.
Herbert Kleebauer
2011-08-11 06:27:50 UTC
Permalink
Post by Anselm Rapp
Post by Herbert Kleebauer
Post by Anselm Rapp
Post by Ralph 'rkhb' Bauer
setlocal enableextensions enabledelayedexpansion
SET Z=!TIME!
SET D=!DATE!
SET JAH=!D:~6,4!
SET MON=!D:~3,2!
SET TAG=!D:~0,2!
SET STD=!Z:~0,2!
SET MIN=!Z:~3,2!
SET SEK=!Z:~6,2!
SET ZEIT=!JAH!!MON!!TAG!!STD!!MIN!!SEK!
Du bist chronologisch Zweiter, aber das Ergebnis ist genau so gut.
Sofern du es nicht genau um Mitternacht ausführst.
Oh. Erklärst Du's bitte?
Post by Herbert Kleebauer
Post by Anselm Rapp
Post by Ralph 'rkhb' Bauer
SET Z=!TIME!
SET D=!DATE!
Wenn zwischen diesen beiden Befehlen das Datum wechselt, hast du die Zeit
vom alten Tag (23:59:59) und das Datum vom neuen Tag.

Daher:

:nochmals
set d=%date%
set z=%time%
if not %date%==%d% goto :nochmals

Es gibt auch keine Notwendigkeit enabledelayedexpansion und "!" anstatt "%"
zu verwenden.
Anselm Rapp
2011-08-11 17:32:11 UTC
Permalink
Post by Herbert Kleebauer
Post by Ralph 'rkhb' Bauer
SET Z=!TIME!
SET D=!DATE!
Wenn zwischen diesen beiden Befehlen das Datum wechselt, hast du die Zeit
vom alten Tag (23:59:59) und das Datum vom neuen Tag.
:nochmals
set d=%date%
set z=%time%
if not %date%==%d% goto :nochmals
Es gibt auch keine Notwendigkeit enabledelayedexpansion und "!" anstatt "%"
zu verwenden.
Gut. Ich verwende das Datum zur Umbenennung von Backups meiner Website,
die immer nur backup.irgendwas heißen und deren Dateinamen ich die
genaue Zeit verpassen möchte. Die Wahrscheinlichkeit, das um Mitternacht
zu tun, ist verschwindend gering, aber Nummer sicher ist sicher.

Dank und Gruß,

Anselm
--
Bitte in der Newsgroup antworten.
Lesen Sie weiter auf narkive:
Loading...