Ich möchte gerne (automatisch via TC) tausenden von Verzeichnissen den selben Timestamp geben, wie die älteste Datei in dem jew. Verzeichnis hat.
Anschaulich:
Code: Select all
Vorher:
Verzeichnis-Datum: 20.12.2010
Datei im Verzeichnis: 12.12.2001
Nachher:
Verzeichnis-Datum: 12.12.2001
Datei im Verzeichnis: 12.12.2001
Leider muss ich aber feststellen, das das ganze nicht bei gemappten Netzwerkshares funktioniert.
Über den Attribute Ändern Dialog innerhalb TC kann ich aber wunderbar das Verzeichnisdatum auf gemappten Netzwerkshares ändern.
Und da ich sowieso lieber den TC, als irgendeine fremde Batchdatei nutze,
nun meine Frage:
Weis jmd. der Anwesenden hier, wie ich es mittels TC (und ggf. den Batchdateien, oder Plugins) schaffe,
allen Unterverzeichnissen eines bestimmten Verzeichnisses das selbe Datum zu geben, das die älteste Datei im jew. Verzeichnis hat?
die Batchdatei(en), die ich mir aus obigen Quellen zusammengeklaubt habe (nicht, das ich irgendetwas davon verstehen würde...):
Code: Select all
::touchsubdirs.bat
@echo off && setlocal enabledelayedexpansion
for /f "usebackq delims=" %%i in (`date /t`) do set datum=%%i&& set datum=!datum:~0,10!
::echo aktuelles Systemdatum: !datum!
for /d /r %%i in (*) do call _touchwitholdest.bat "%%i"
date %datum%
echo.
for /f "usebackq delims=" %%i in (`date /t`) do set datum=%%i&& set datum=!datum:~0,10!
::echo aktuelles Systemdatum: !datum!
pause
Code: Select all
::_touchwitholdest.bat
@echo off && setlocal enabledelayedexpansion
cd %1
:: Wenn Verz. leer, dann Fehlermeldung, deswegen Dummy in jedes Verz.
date 11-11-2222
date /t >tmp.tmp
:: Weiterer Vorteil: leere Verz. haben allesamt 2222-Datum.
for /f "usebackq delims==" %%j in (`dir /a-d /b /o:-d`) do set pfad=%%~pj&& set timestamp=%%~tj
del tmp.tmp
echo "+++++++++++++++++++++++"
echo Pfad: %1%
set timestamp=%timestamp:~0,10%
echo Timestamp: "%timestamp%"
date %timestamp%
::echo Setze Änderungsdatum von "%cd%" auf %timestamp%.
echo %timestamp%>>tmp.tmp
:: zum testen tmp.tmp nicht löschen
del tmp.tmp