Verzeichnisdatum auf Datum der neuesten Datei setzen

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
larry99
Junior Member
Junior Member
Posts: 62
Joined: 2009-01-16, 16:03 UTC
Location: Germany

Verzeichnisdatum auf Datum der neuesten Datei setzen

Post by *larry99 »

Ich organisiere ab und zu meine Ordner um und anschließend ist es ziemlich schwierig zu sehen, wo nur altes Zeug drin ist und wo aktuelle Sachen sind, da das Datum der kopierten Ordner -- wie wohl vom Betriebssystem erst einmal vorgesehen -- auf das aktuelle Datum gesetzt wird.

Frage: Gibt es im TC eine Funktion oder noch besser eine Config-Einstellung, mit der ich das Ordnerdatum auf das Datum der neuesten Datei setzen kann? Idealerweise sollte es rekursiv funktionieren, d.h. jeder Ordner der aktuellen Ordner-Hierarchie sollte jeweils das Datum der jüngsten enthaltenen Datei erhalten. Damit hat der oberste Ordner automatisch das Datum der neuesten Datei der gesamten Hierarchie.

Ganz ideal wäre es, wenn das sogar (optional) für Archive funktionieren würde, d.h. auch alle Archive werden auf das Datum der jüngsten enthaltenen Datei gesetzt. Das hilft bei Downloads von älteren Archiven, die sonst beim Speichern des Downloads das aktuelle Datum bekommen, obwohl nur ältere Dateien enthalten sind.

Geht das mit TC? Wenn nicht, fände ich es gut, wenn es eingebaut würde und wenn das auch aus welchen Gründen auch immer nichts wird, gibt es Empfehlungen für externe Tools, die das können?
User avatar
praetor
Junior Member
Junior Member
Posts: 84
Joined: 2003-05-24, 13:46 UTC

Re: Verzeichnisdatum auf Datum der neuesten Datei setzen

Post by *praetor »

Grüße
praetor
larry99
Junior Member
Junior Member
Posts: 62
Joined: 2009-01-16, 16:03 UTC
Location: Germany

Re: Verzeichnisdatum auf Datum der neuesten Datei setzen

Post by *larry99 »

Danke für den Hinweis aber wenn ich es richtig verstehe, wird damit nur eine zus. Spalte mit dem Datum erzeugt. Sieht im Ergebnis zwar sicher ähnlich aus, wie das was ich will, ich hätte aber schon gern "the real thing", sprich: das echte Verzeichnisdatum sollte auf das der neuesten Datei gesetzt werden.
Grund ist u.a., daß ich zwar sehr viel mit dem TC mache, aber durchaus auch mal mit anderen Tools/Betriebssystemen auf meine Daten schaue (z.B. per WebDAV oder von Linux per smbclient)

AHK (das ja wohl in o.a. Lösung die Arbeit macht) ist sicher ein mächtiges Tool, wäre in meinem Zoo aber neu. Leider bin ich noch nicht dazu gekommen, mich mal näher mit Powershell zu beschäftigen. Was ich mir -- angeregt durch Deinen Hinweis -- vorstellen könnte ist ein Powershell-Script, das man auf einen Button legt. Dieses würde dann die aktuelle Hierarchie durchgehen, das neueste Datum einsammeln und das Ordnerdatum entsprechend setzen. Hat sowas schon mal jemand gemacht?
Powershell deshalb, weil es nativ da ist und weder zus. Plugin noch zus. Tool benötigt.

Update: Habe gerade per Google etwas gefunden, was als Grundlage dienen könnte: https://ss64.com/ps/syntax-lastmodified.html
Werde ich mir mal ansehen. Für bessere Lösungen wäre ich aber natürlich nach wie vor dankbar...
User avatar
Horst.Epp
Power Member
Power Member
Posts: 6950
Joined: 2003-02-06, 17:36 UTC
Location: Germany

Re: Verzeichnisdatum auf Datum der neuesten Datei setzen

Post by *Horst.Epp »

Folder Time Update von NirSoft macht das perfekt.
https://www.nirsoft.net/utils/folder_time_update.html

Für Archive kannst du im TC das Archiv entpacken und das Archiv neu erstellen.
Dabei wird im aktuellen TC 10.50b2 das Archiv Datum auf die neueste File gesetzt.
Windows 11 Home, Version 24H2 (OS Build 26100.3915)
TC 11.51 x64 / x86
Everything 1.5.0.1391a (x64), Everything Toolbar 1.5.2.0, Listary Pro 6.3.2.88
QAP 11.6.4.2.1 x64
larry99
Junior Member
Junior Member
Posts: 62
Joined: 2009-01-16, 16:03 UTC
Location: Germany

Re: Verzeichnisdatum auf Datum der neuesten Datei setzen

Post by *larry99 »

Besten Dank! Folder Time Update tut es wirklich gut und was besonders praktisch ist: es kann komplett per Kommandozeile bedient werden.
Ein Schalter beim TC Copy-Befehl wäre natürlich trotzdem extrem praktisch, da es den nachträglichen Aufruf des Tools ersparen würde.
Rein funktional bin ich voll und ganz zufrieden!

Die Lösung für Archive gefällt mir dagegen nicht so gut, weil sich die Checksumme dabei meistens ändert. Ich möchte das Archiv lassen wie es ist, nur das Dateidatum ändern.
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3893
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Re: Verzeichnisdatum auf Datum der neuesten Datei setzen

Post by *sqa_wizard »

Ich verwende SetFolderDate dafür, welches sowohl Archive als auch Ordner korrigiert.
Anwendung:
Einfach den Inhalt von SetFolderDate_1.5.zip in ein Verzeichnis deiner Wahl entpacken.

Danach die Datei SetFolderDate.ini bearbeiten.
Der erste Eintrag muss für die Archivbehandlung angepasst werden:

Code: Select all

ProgPath7z=%COMMANDER_PATH%\..\7-Zip\7z.exe
Man kann auch einen absoluten Pfad mit Laufwerksbuchstaben verwenden, aber ich bevorzuge es portabel.

Optional kann man das gleiche mit "ProgPathExifTool=" machen (falls installiert)

Nun kann man im TC Ordner und Archive selektieren und startet SetFolderDate.exe im TC.
Das kann mit einem Button oder einem Eintrag im Startmenü erfolgen.
#5767 Personal license
larry99
Junior Member
Junior Member
Posts: 62
Joined: 2009-01-16, 16:03 UTC
Location: Germany

Re: Verzeichnisdatum auf Datum der neuesten Datei setzen

Post by *larry99 »

Danke auch für den Tip SetFolderDate! Ich habe allerdings keine Möglichkeit gefunden, es ohne GUI in Scripten zu verwenden (hatte ich auch nicht als Bedingung genannt, ist mir aber wichtig).

Geholfen hat der Tip trotzdem. Aus dem mitgelieferten Quellcode habe ich gesehen, daß 7zip zur Ermittlung der neuesten Datei verwendet wird. Angeregt durch diese idee habe ich mir selbst ein kleines Script geschrieben, das für Archive dasselbe macht:

Code: Select all

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

:: Diese beiden Pfade anpassen!
set ZBIN=c:\PortableApps\7-ZipPortable\App\7-Zip\7z.exe
set NBIN=C:\TOOLS\nircmd.exe

set ARCFILE=%1
if "%ARCFILE%"=="" goto _error

set ARCFILE=%ARCFILE:"=%

set DATETIME=00000000000000
for /f "tokens=*" %%f in ('%ZBIN% l "%ARCFILE%"') do (
  set lastLine=%%f
  set normal=!lastLine:~0,19!
  REM nur Dateien, Ordner haben ein "D" an position 20, Dateien einen "."
  if "!lastLine:~20,1!"=="." (
	 if "!normal!" gtr "!DATETIME!" set DATETIME=!normal!
  )
)

set LASTDATE=!DATETIME:~0,10!
set LASTTIME=!DATETIME:~11,8!

::     setfiletime [filename or wildcard] [Created Date] {Modified Date} {Accessed Date}
%NBIN% setfiletime "%ARCFILE%" "!LASTDATE:~8,2!-!LASTDATE:~5,2!-!LASTDATE:~0,4! !LASTTIME!" "!LASTDATE:~8,2!-!LASTDATE:~5,2!-!LASTDATE:~0,4! !LASTTIME!"

:_error
echo Archiv als Parameter angeben, dessen Dateidatum auf das der juengsten Datei gesetzt werden soll^^!
echo Beispiel: %0 somearchive.zip
goto _end

:_end
ENDLOCAL
Da 7zip oft schon vorhanden ist und nirsoft.exe einfach ohne Installation verwendet werden kann, erscheinen mir die Hürden nicht sonderlich hoch.
Vielleicht kann es ja jemand gebrauchen.

Grüße und nochmals besten Dank an alle Hinweisgeber
Post Reply