Verzeichniss-Timestamp = Datei-Timestamp

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
versalzen
Power Member
Power Member
Posts: 670
Joined: 2003-09-16, 11:52 UTC
Location: kölle, linksrheinisch.

Verzeichniss-Timestamp = Datei-Timestamp

Post by *versalzen »

Hallo trautes Volk,

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
Nun habe ich mich schlau gemacht und mir schon eine Batchdatei zusammengebastelt, die lokal eigentlich auch ganz gut funktioniert.

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
Ich wäre und bin sehr verbunden, für inspirative Ideen.
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?

Mario
User avatar
Horst.Epp
Power Member
Power Member
Posts: 6995
Joined: 2003-02-06, 17:36 UTC
Location: Germany

Post by *Horst.Epp »

Da Windows bei NTFS das Datum eines Verzeichnisses bei jeder Aenderung darin wieder aendert, sehe ich da keinen Sinn drin.
User avatar
versalzen
Power Member
Power Member
Posts: 670
Joined: 2003-09-16, 11:52 UTC
Location: kölle, linksrheinisch.

Post by *versalzen »

Horst.Epp wrote:Da Windows bei NTFS das Datum eines Verzeichnisses bei jeder Aenderung darin wieder aendert, sehe ich da keinen Sinn drin.
Dafür habe ich Verständnis. :-)

Aber -auch wenn Dir der Sinn verborgen bleibt-, mich würde eine Lösung doch schon sehr interessieren, denn Windows schreibt hier nicht einfach in irgendwelche Verzeichnisse und aktualisiert sie somit. Das mache ich, bzw. Programme, die ich dazu befelige.

Allerdings: angestoßen durch den obigen Kommentar, evtl. habe ich mich ja nicht klar genug ausgedrückt:

-Es existiert, auf einem Unix-NAS, ein Verzeichnis mit diversen Unterverzeichnissen.

-Diese Unterverzeichnisse enthalten jeweils eine unterschiedliche Anzahl an Dateien (manchmal auch noch weitere Unterverzeichnisse).

-Jede Datei in einem Unterverzeichnis hat ein Datum und das älteste Datum möchte ich als Zeitstempel für das Verzeichnis setzen, das ebendiese Datei enthält.
(siehe auch das Beispiel im ersten Posting).

Hat also ein Verzeichnis das Datum 20.12.2010 und die älteste Datei das Datum 12.12.2001,
so wäre es wunderbar, wenn das Verzeichnis nach der Magie und dem Zaubersalz ebenso das Datum 12.12.2001 hat.

Hoffe, ich habe mich nun klarer ausgedrückt.
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?

Mario
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

versalzen wrote: Das mache ich, bzw. Programme, die ich dazu befelige.
Nett ;)
Ein Computerprogramm tut, was Du schreibst, nicht was Du willst.
http://ghisler.ch/board/viewtopic.php?p=211304#211304

HTH
Holger
User avatar
versalzen
Power Member
Power Member
Posts: 670
Joined: 2003-09-16, 11:52 UTC
Location: kölle, linksrheinisch.

Post by *versalzen »

Mensch Holger :-)
sei zutiefst bedankt.

Und natürlich geht mein Dank auch an VanDusen.

Ich verneige mich höchst zufrieden.
(Auch, wenn man in diesem winzigen Programmfenster, welches sich nicht vergrößern lässt, relativ wenig lesen kann, so tut es doch genau das, was ich will/wollte/anstrebte)



Weil es etwas mühsam war, mich durch die ganzen toten Links zu klicken und die Texte zu lesen, die relevant für mich waren,
hier eine kurze Zusammenfassung:

Download der (hoffentlich) letzten Version:
Stitscher wrote:Here is the version 1.2.2a from vanDusen:
SetFolderDate1.2.2a (03/09/2006, 194KB)
an den Ort der Wahl entpacken. Z.b.: C:\tc_tools\

Ins Startermenü einbinden:
TychoBarfy wrote:menu2=Verzeichnisdatum ändern...
cmd2=%COMMANDER_PATH%\tc_tools\SetFolderDate.exe
param2=%L
path2=%COMMANDER_PATH%\tc_tools\
entsprechende Verzeichnisse im TC markieren, den Button klicken, Vorschau angucken und lächelnd auf Ausführen klicken.


Ansonsten wird jeder, der den obersten Link folgt, weitere Hinweise finden...
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?

Mario
Post Reply