Zeitstempel aus Dateinamen als Erstellungsdatum extrahieren
Moderators: Hacker, Stefan2, white
Zeitstempel aus Dateinamen als Erstellungsdatum extrahieren
Hallo,
ich habe einige Dateien mit einem Datums-/Zeitstempel im Namen. Auf dieses Datum würde ich gern das Erstellungsdatum der Datei setzen. Gibt es dafür eine Möglichkeit in TC? Mglw. mit einem Plugin...?
Alternativ: Geht es ohne TC sonst irgendwie unter Ubuntu? Ich weiß, das würde dann nicht hierher gehören, aber bin für jegliche Tipps dankbar.
Viele Grüße!
ich habe einige Dateien mit einem Datums-/Zeitstempel im Namen. Auf dieses Datum würde ich gern das Erstellungsdatum der Datei setzen. Gibt es dafür eine Möglichkeit in TC? Mglw. mit einem Plugin...?
Alternativ: Geht es ohne TC sonst irgendwie unter Ubuntu? Ich weiß, das würde dann nicht hierher gehören, aber bin für jegliche Tipps dankbar.
Viele Grüße!
- ghisler(Author)
- Site Admin
- Posts: 50532
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Ja, dazu können Sie Dateien-"Dateiattribute ändern" verwenden, und zwar über "Mehr Attribute". Das Datum können Sie mit Hilfe von Pluginfeldern aus dem Namen extrahieren. Dabei müssen Sie es genau so erzeugen, wie es vom Datumsfeld benötigt wird - also wenn das Datumsfehld Tag.Monat.Jahr verlangt, müssen Sie es genau so einfügen.
Beispiel Dateiname:
20120131-text.txt
[=tc.name:7-8].[=tc.name:5-6].[=tc.name:1-4]
Am einfachsten ist es, das im Umbenenntool zusammenzustellen, weil es da eine Vorschau gibt, und anschliessend den fertigen String ins "Dateiattribute ändern" zu kopieren.
Beispiel Dateiname:
20120131-text.txt
[=tc.name:7-8].[=tc.name:5-6].[=tc.name:1-4]
Am einfachsten ist es, das im Umbenenntool zusammenzustellen, weil es da eine Vorschau gibt, und anschliessend den fertigen String ins "Dateiattribute ändern" zu kopieren.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Ändere Datum mit Teil vom Dateinamen mittels PowerShell
Oder mit PowerShell.
Hier mal ein Button für die TC buttonbar (Auswählen, Kopieren, auf die Buttonbar einfügen)
Das Datum wird per RegEx aus dem Dateinamen extrahiert, egal an welcher Stelle es im Namen steht.
Hinweise:
- das regex pattern zum extrahieren des Datums muss an das Muster im Dateinamen angepasst werden.
Das hier benutzte matcht auf YYYY-MM-DD
Test Dateinamen:
* readme2012-12-11.txt
* Origin2010-08-19Source.txt
* changes 1997-09-11.txt
* order 1996-03-04.txt
* 1988-03-25 CORE.NFO.txt
- ebenso kann man die Uhrzeit "12:33" und das gewünschte zu ändernde Attribute an seine Vorlieben anpassen.
* CreationTime
* LastAccessTime
* LastWriteTime
- für TC musste ich die Quotes escapen ( " > """ ) und ebenso das Prozentzeichen ( % > %% ).
- - -
Im Original sieht das obige PowerShell Kommando so aus:
gci|?{$_.Name -match "\d{4}-\d{2}-\d{2}"}|%{$d=$matches[0]+" 12:33";$_.LastWriteTime=$d;$_.CreationTime=$d}
Beziehungsweise voll ausgeschrieben:
gci | ? {$_.Name -match "\d{4}-\d{2}-\d{2}"} | % { $d =$matches[0] + " 12:33"; $_.LastWriteTime = $d ; $_.CreationTime=$d }
Get-ChildItem | Where-Object{ $_.Name -match "\d{4}-\d{2}-\d{2}" } | Foreach-Object { $date = $matches[0] + " 12:33"; $_.LastWriteTime = $date; $_.CreationTime = $date; }
HTH?
Hier mal ein Button für die TC buttonbar (Auswählen, Kopieren, auf die Buttonbar einfügen)
Das Datum wird per RegEx aus dem Dateinamen extrahiert, egal an welcher Stelle es im Namen steht.
Hinweise:
- das regex pattern zum extrahieren des Datums muss an das Muster im Dateinamen angepasst werden.
Das hier benutzte matcht auf YYYY-MM-DD
Test Dateinamen:
* readme2012-12-11.txt
* Origin2010-08-19Source.txt
* changes 1997-09-11.txt
* order 1996-03-04.txt
* 1988-03-25 CORE.NFO.txt
- ebenso kann man die Uhrzeit "12:33" und das gewünschte zu ändernde Attribute an seine Vorlieben anpassen.
* CreationTime
* LastAccessTime
* LastWriteTime
- für TC musste ich die Quotes escapen ( " > """ ) und ebenso das Prozentzeichen ( % > %% ).
Code: Select all
TOTALCMD#BAR#DATA
powershell
gci|?{$_.Name -match """\d{4}-\d{2}-\d{2}"""}|%%{$d=$matches[0]+""" 12:33""";$_.LastWriteTime=$d;$_.CreationTime=$d}
%commander_path%\WCMICONS.DLL,7
-1
- - -
Im Original sieht das obige PowerShell Kommando so aus:
gci|?{$_.Name -match "\d{4}-\d{2}-\d{2}"}|%{$d=$matches[0]+" 12:33";$_.LastWriteTime=$d;$_.CreationTime=$d}
Beziehungsweise voll ausgeschrieben:
gci | ? {$_.Name -match "\d{4}-\d{2}-\d{2}"} | % { $d =$matches[0] + " 12:33"; $_.LastWriteTime = $d ; $_.CreationTime=$d }
Get-ChildItem | Where-Object{ $_.Name -match "\d{4}-\d{2}-\d{2}" } | Foreach-Object { $date = $matches[0] + " 12:33"; $_.LastWriteTime = $date; $_.CreationTime = $date; }
HTH?

mrstefan wrote:Hallo,
ich habe einige Videos und Fotos bei denen leider das Erstellt Datum mit dem aktuellen Datum bzw. falschen Datum versehen ist.
Im Dateinamen habe ich jedoch die Infos komplett, da ich diese immer umbenenne - zum Beispiel:
20160119151009.jpg
Also der 19.01.2016 Uhrzeit 15:10:09
Kann bzw. wie kann ich mit TC das Erstellt Datum und Uhrzeit auf das/die im Dateinamen ändern?
Zitat Ghisler: http://ghisler.ch/board/viewtopic.php?t=39137
Ja, dazu können Sie Dateien-"Dateiattribute ändern" verwenden, und zwar über "Mehr Attribute".
Das Datum können Sie mit Hilfe von Pluginfeldern aus dem Namen extrahieren.
Am einfachsten ist es, das im Umbenenntool zusammenzustellen, weil es da eine Vorschau gibt,
und anschliessend den fertigen String ins "Dateiattribute ändern" zu kopieren.
Dabei müssen Sie die Datums-Zeichenkette genau so zusammenstellen,wie es vom Datumsfeld benötigt wird,
also wenn das Datumsfeld "Tag.Monat.Jahr HH:MM:SS" verlangt (wie in Deutschland üblich),
müssen Sie es genau so in dieser Reihenfolge einfügen.
- - -
Beispiel Dateiname: 20120131-text.txt (2012 01 31 >>> 31.01.2012 00:00:00)
[=tc.name:7-8] >>> extrahiert 31
[=tc.name:5-6] >>> extrahiert 01
[=tc.name:1-4] >>> extrahiert 2012
Anwendung:
Dateien > "Dateiattribute ändern"
"Mehr Attribute" anklicken.
[X] Pluginattribute ändern
Plugin: tc || Eigenschaft: Erstelldatum || Wert: [=tc.name:7-8].[=tc.name:5-6].[=tc.name:1-4]
[OK]
- - -
Beispiel Dateiname: 20160119151009.jpg (2016 01 19 15 10 09 >>> 19.01.2016 15:10:09)
[=tc.name:7-8] >>> extrahiert 19
[=tc.name:5-6] >>> extrahiert 01
[=tc.name:1-4] >>> extrahiert 2016
[=tc.name:9-10] >>> extrahiert 15
[=tc.name:11-12]>>> extrahiert 10
[=tc.name:13-14]>>> extrahiert 09
Anwendung:
Dateien > "Dateiattribute ändern"
"Mehr Attribute" anklicken.
[X] Pluginattribute ändern
Plugin: tc || Eigenschaft: Erstelldatum || Wert: [=tc.Name:7-8].[=tc.Name:5-6].[=tc.Name:1-4] [=tc.Name:9-10]:[=tc.Name:11-12]:[=tc.Name:13-14]
[OK]
- - -
Oder auch: tc || Eigenschaft: Änderungsdatum
.
Hallo (auch) Stefan,
erst mal danke - es funktioniert!
Eine kleine Änderung musste ich vornehmen, vielleicht interessant falls jemand das selbe Problem hat - Datum und Zeit müssen als zwei Attribute importiert/geändert werden:
Dateien > "Dateiattribute ändern"
"Mehr Attribute" anklicken.
[X] Pluginattribute ändern
Plugin: tc || Eigenschaft: Erstelldatum || Wert: [=tc.Name:7-8].[=tc.Name:5-6].[=tc.Name:1-4]
"Mehr Attribute" anklicken.
Plugin: tc || Eigenschaft: Erstellzeit || Wert: [=tc.Name:9-10]:[=tc.Name:11-12]:[=tc.Name:13-14]
[OK]
Danke u VG Stefan
erst mal danke - es funktioniert!
Eine kleine Änderung musste ich vornehmen, vielleicht interessant falls jemand das selbe Problem hat - Datum und Zeit müssen als zwei Attribute importiert/geändert werden:
Dateien > "Dateiattribute ändern"
"Mehr Attribute" anklicken.
[X] Pluginattribute ändern
Plugin: tc || Eigenschaft: Erstelldatum || Wert: [=tc.Name:7-8].[=tc.Name:5-6].[=tc.Name:1-4]
"Mehr Attribute" anklicken.
Plugin: tc || Eigenschaft: Erstellzeit || Wert: [=tc.Name:9-10]:[=tc.Name:11-12]:[=tc.Name:13-14]
[OK]
Danke u VG Stefan
Nein.mrstefan wrote: - Datum und Zeit müssen als zwei Attribute importiert/geändert werden:
Alles kann auf einmal in einem String für Erstell- oder Änderungsdatum geschrieben werden.
Nur zwischen Datum und Zeit muss ein Leerzeichen stehen:
"dd.mm.yyyy HH:MM:SS"
oder
"dd.mm.yyyy HH:MM"
oder
"dd.mm.yyyy HH"
oder
"dd.mm.yyyy"
( Deutsches Zeitformat, siehe HKEY_CURRENT_USER\Control Panel\International\sShortDate + sShortTime )
Re:
Hallo,mrstefan wrote: 2017-01-04, 14:31 UTC Hallo (auch) Stefan,
erst mal danke - es funktioniert!
Eine kleine Änderung musste ich vornehmen, vielleicht interessant falls jemand das selbe Problem hat - Datum und Zeit müssen als zwei Attribute importiert/geändert werden:
Dateien > "Dateiattribute ändern"
"Mehr Attribute" anklicken.
[X] Pluginattribute ändern
Plugin: tc || Eigenschaft: Erstelldatum || Wert: [=tc.Name:7-8].[=tc.Name:5-6].[=tc.Name:1-4]
"Mehr Attribute" anklicken.
Plugin: tc || Eigenschaft: Erstellzeit || Wert: [=tc.Name:9-10]:[=tc.Name:11-12]:[=tc.Name:13-14]
[OK]
Danke u VG Stefan
vielen Dank auch von meiner Seite!
Die Kombination aus Datum und Zeit hat bei mir auf Windwos10 perfekt funktioniert!
Dateiname: 2015-08-20 18.15.11
Erstellungsdatum neu: 20.08.2015 18:15
Syntax: [=tc.Name:9-10].[=tc.Name:6-7].[=tc.Name:1-4] [=tc.Name:12-13]:[=tc.Name:15-16]:[=tc.Name:18-19]
SG Clemens