
115241
30.06.2014, aktualisiert am 01.07.2014
Verzeichnisse mit neuen Datum ändern bzw. anpassen
Hallo, hier kurz und knapp mein Problem.
Ich habe mit Hilfe von FileTouch.exe ein Batch Script geschrieben welches Folgendes macht (funktioniert tadellos).
Es liest das Datum in ausgewählten Verzeichnissen, aus einer Datei die sich dort drin befindet und verseht andere Dateien die sich auch in dem Verzeichnis befinden mit dem neuen Datum aus.
Sprich, ich "normalisiere" ausgewählte Dateiendtyp mit dem "definiertem" Datum so, dass alle Dateien das gleiche Datum zum Schluss haben.
Mein Problem ist jetzt, dass ich auch die "Verzeichnisse" mit dem zugehörigen Datum verändern möchte, das gelingt mir leider nicht.
Hier ist mein Script:
Die Liste sieht so aus:
Batch und Liste.txt befinden sich in C:\Test
Wie kann ich jetzt nur die Verzeichnisse mit dem "ausgelesenen" Datum anpassen??
Danke für die Hilfe
ps: Handarbeit fällt aus, da es sich um mehrere Hundert Verzeichnisse handelt.
Ich habe mit Hilfe von FileTouch.exe ein Batch Script geschrieben welches Folgendes macht (funktioniert tadellos).
Es liest das Datum in ausgewählten Verzeichnissen, aus einer Datei die sich dort drin befindet und verseht andere Dateien die sich auch in dem Verzeichnis befinden mit dem neuen Datum aus.
Sprich, ich "normalisiere" ausgewählte Dateiendtyp mit dem "definiertem" Datum so, dass alle Dateien das gleiche Datum zum Schluss haben.
Mein Problem ist jetzt, dass ich auch die "Verzeichnisse" mit dem zugehörigen Datum verändern möchte, das gelingt mir leider nicht.
Hier ist mein Script:
@echo off & setlocal & title %~n0
cls
:: Verändert das Datum und die Uhrzeit mittels FileTouch.exe
:: Informationen werden aus der Attribute eines zuvor deklarierten
:: Dateityps gelesen und fuer das neue Dateityp verwendet
:: Downlouad unter http://www.softtreetech.com/24x7/archive/47.htm
:: Pfad von FileTouch.exe
set Touch="c:\tools\FileTouch.exe"
:: Arbeitsverzeichnis
set "Verzeichnis=G:\Test"
:: Dateityp der verarbeitet wird
set "Typ=jpg"
:: Datum/Zeit wird aus dem Dateityp ausgelesen
set "orgTyp=txt"
:: -=- Sofern Liste.txt nicht verwendet wird,
:: -=- muss von hier alles Komentiert sein
:: Aktuelles Verzeichnis, wo diese .bat und Liste.txt liegen
set "Pfad=%~dp0"
:: Liste mit Verzeichnissen, die verarbeitet werden
set "List=Liste.txt"
:: Wechselt ins aktuelles Verzeichnis, sonst Ende
pushd %Pfad% || goto :eof
:: Verarbeitet Liste und springt zu ProcessFile
for /f "usebackq delims=" %%i in ("%List%") do set "Verzeichnis=%%i" & call :Process1 "%%i"
popd
goto :eof
:Process1
echo Verzeichnis aus %List%: %Verzeichnis%
:: -=- Bis hier sofern Liste.txt verwendet wird
:: Wechselt ins Arbeitverzeichnis, sonst Ende
pushd "%Verzeichnis%" || goto :eof
:: Liest das Datum und die Uhrzeit und fügt der Zeit zusätzliche (:00) bei,
:: die notwendig sind für das umschreiben von FileTouch
for %%i in ("%Verzeichnis%\*.%orgTyp%") do (
for /f "tokens=1-2 delims= " %%j in ("%%~ti") do (set "Datum=%%j" & set "Zeit=%%k:00")
)
:: Datumsformat aus Punkten (.) wird Bindestrich (-) notwendig für FileTouch
for /f "delims=. tokens=1-3" %%a in ("%Datum%") do (set "Dat=%%b-%%a-%%c")
:: Verarbeitet Dateien die verändert werden sollen
for /f "delims=" %%i in ('dir /b /a-d /t:c "*.%Typ%"') do @( set "Datei=%%i" & call :Process2 "%%i")
popd
goto :eof
:Process2
echo.
echo Dateiname: %Datei% Datum: %Dat% Zeit: %Zeit%
echo ----------
:: FileTouch mit Parametern wird aufgerufen
echo %Touch% /W /A /C /D %Dat% /T %Zeit% "%Verzeichnis%"
echo -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
C:\Test\Verzeichnis_1
C:\Test\Verzeichnis_2
C:\Test\Verzeichnis_3
Wie kann ich jetzt nur die Verzeichnisse mit dem "ausgelesenen" Datum anpassen??
Danke für die Hilfe
ps: Handarbeit fällt aus, da es sich um mehrere Hundert Verzeichnisse handelt.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 242247
Url: https://administrator.de/forum/verzeichnisse-mit-neuen-datum-aendern-bzw-anpassen-242247.html
Ausgedruckt am: 15.05.2025 um 02:05 Uhr
2 Kommentare
Neuester Kommentar