raidman
Goto Top

Per Batch, Verzeichniss und enthaltene Dateien Zeitstempel ändern

Hallo Leutz

ich möchte/ muss von hunderten Verzeichnissen, tausende von Dateien den Zeitstempel ändern,
und zwar immer ein Verzeichnis und die enthaltenen Dateien auf das gleiche Datum/ Zeit setzen
die Verzeichnisnamen, Datum und Uhrzeit habe ich in Tabellen

wie kann ich das mit einer Batch-datei, und eventuell auch mit einem hilfstool lösen ?

so grob kann ich schon mit Batch schon umgehen, aber dafür finde ich keine Lösung face-sad

schon mal Danke vorweg

LG
RaidMan

Content-ID: 143400

Url: https://administrator.de/contentid/143400

Ausgedruckt am: 16.11.2024 um 11:11 Uhr

77559
77559 23.05.2010 um 16:47:36 Uhr
Goto Top
Hallo Raidman,

du suchst ein Touch utility. Ich benutze selber eins von Steve P. Miller oder
aber die GnuWin Coreutils, z.Bsp. von hier
Da sind noch jede Menge andere nützliche Portierungen dabei, Head Tail Tee usw.

Hier die Hilfe von Touch
>touch --help
Usage: touch [OPTION]... FILE...
Update the access and modification times of each FILE to the current time.

Mandatory arguments to long options are mandatory for short options too.
  -a                     change only the access time
  -c, --no-create        do not create any files
  -d, --date=STRING      parse STRING and use it instead of current time
  -f                     (ignored)
  -m                     change only the modification time
  -r, --reference=FILE   use this file's times instead of current time
  -t STAMP               use [[CC]YY]MMDDhhmm[.ss] instead of current time
  --time=WORD            change the specified time:
                           WORD is access, atime, or use: equivalent to -a
                           WORD is modify or mtime: equivalent to -m
      --help     display this help and exit
      --version  output version information and exit

Note that the -d and -t options accept different time-date formats.

Report bugs to <bug-coreutils@gnu.org>.

Solltest du Hilfe bei der Umsetzung brauchen,
wäre das genaue Format einer solchen Zeile aus deiner Datei wichtig zu wissen.

Frohe Pfingsten
LotPings
RaidMan
RaidMan 23.05.2010 um 17:10:25 Uhr
Goto Top
hallo LotPings

erstmal Danke für die Antwort

ja, ein touch für DOS oder so wäre schon eine gute Hilfe
deinem link bin ich natürlich gleich gefolgt aber das was da geboten wird läuft unter DOS winXP nicht oder !?

weil "libintl3.dll" vermisst wird


RaidMan


edit. 10 min später

habe gerade mal nach Steve P. Miller gesucht und seine toolbox gefunden mal sehen ob ich damit klarkomme
77559
77559 23.05.2010 um 17:24:05 Uhr
Goto Top
Das hat mit DOS nichts (mehr) zu tun, auch wenn es aus dem Sprachgebrauch nicht auszurotten ist.

Es handelt sich um 32bit Windows Konsolen Programme, die unter allen (noch) relevanten Windowsversionen laufen sollten.
Bei mir eben auch auf einem Win7 64 bit. Echte "DOS" Anwendungen sind normalerweise 16bit - die laufen bei mir nur noch in einer VM oder DOSbox. Edit: weil unter Win64bit keine 16-bit Anwendungen mehr unterstützt werden.

Gruß
RaidMan
RaidMan 23.05.2010 um 18:10:57 Uhr
Goto Top
Hallo LotPings

das touch von SteveP.Miller läuft zwar, hat aber leider gleich zwei Haken
1. das zu übergebende Datumsformat mit mm-dd-yyyyy in meiner liste steht natürlich dd-mm-yyyy
2. werden so wie ich das sehe nur die Zeiten für die Dateien nicht das Verzeichnis geändert,
schade sah schon so gut aus face-sad

und die Coreutils sollten in einer XP dosbox laufen sagst du ?

hast noch einen anderen touch tip ?

edit:

habe die coreutils noch einmal geladen und installiert jetzt geht es
mal sehen ob ich mit dem touch besser klar komme
77559
77559 23.05.2010 um 19:15:24 Uhr
Goto Top
Sorry, meine letzte Antwort ist wohl in meinen vielen Fenstern verlorengegangen.

es sollte mit Batch kein Problem darstellen ein Datum umzudrehen so das du alle Touch-Versionen benutzen kannst.
Wenn du das nicht selbst hinbekommst, poste eine Beispielzeile aus deiner Datei.

Gruß
RaidMan
RaidMan 23.05.2010 um 19:48:26 Uhr
Goto Top
hallo LotPings

mit dem touch aus den GNU coreutils komm ich leider auch nicht richtig weiter

scheinbar kann ich hier keine Platzhalter einsetzen also *.* für alles im dir
sondern jede Datei will extra benannt werden !???

oder verstehe ich da etwas noch nicht richtig

c:\tools\GnuWin32\bin\touch.exe -t 1005220442.00 "j:\2010-05-22\test dateien 22\*.*" tut nichts

c:\tools\GnuWin32\bin\touch.exe -t 1005220442.00 "j:\2010-05-22\test dateien 22" setzt die Zeit für dir "test dateien 22"

mach ich was falsch ?
hmmmm
77559
77559 24.05.2010 um 11:07:02 Uhr
Goto Top
Moin, diesem Zitat
wie kann ich das mit einer Batch-datei, und eventuell auch mit einem hilfstool lösen ?
so grob kann ich schon mit Batch schon umgehen, aber dafür finde ich keine Lösung
habe ich von Anfang an entnommen das es so kommen würde face-wink

Was Batch alleine nicht kann und auch das Tool nicht, können eben beide zusammen.
@Echo off
set Touch="c:\tools\GnuWin32\bin\touch.exe"  
set "Base=J:\2010-05-22\test dateien\*"  
set "Stamp=201005220442.00"  
Pushd "%Base%"  
For /f "Delims=" %%A in (' Dir /B /A-D *.* ') Do %Touch% -t %Stamp% %%A  
:: Variante mit Unterverzeichnissen durch :: auskommentiert
:: For /f "Delims=" %%A in (' Dir /B /S /A-D *.* ') Do %Touch% -t %Stamp% %%A  
PopD
Die Werte für Base und Stamp könntest du natürlich auch aus einer Datei einlesen,
aber da du das Format trotz mehrfacher Aufforderung nicht verraten willst .....

GRuß
LotPings
RaidMan
RaidMan 24.05.2010 um 13:19:08 Uhr
Goto Top
Hallo LotPings

ich hatte mich schon damit abgefunden gegebenenfalls zwei Batches zu erzeugen jeweils für Dir und Files
einmal mit GNU touch und einmal mit Steve Miller touch

nun stelle ich aber etwas fest was ich noch nicht verstehe

schreibe ich folgende text zeile
c:\WINDOWS\system32\toolbox\touch /d 05-22-2010 /t 04:42:00 "j:\Name1\2010-05-22\2010-05-22 - 04'42'00 ·· Dir Name 001\*.*"

in eine Batch und führe die per aus Enter im Dateimanager (Totalcommander) aus passiert nichts
kopiere ich das in die XP DOSbox Komandozeile dan funktioniert der Befehl

da rätsele ich gerade dra herum, warum das so ist ??????


halte mich bitte nicht für ignorant face-wink

das Format ist eine Text Datei und wird aus einer OpenOffice Calc Datei exportiert
enthält Datum Uhrzeit Pad\Dateiname

2010-05-20 12'20'30 I:\Name1\Monat\Ordner0001\file01.ext
2010-05-20 12'21'21 I:\Name1\Monat\Ordner0002\file01.ext
2010-05-20 12'22'13 I:\Name1\Monat\Ordner0003\file01.ext

kann aber im Format variiert werden

RaidMan