darkatohm

Batch oder Skript Dateien umbennen mit Änderungsdatum größer X Minuten

Hallo zusammen,

ich habe schon etwas recherchiert und einige Möglichkeiten gefunden Dateien umzubenennen, die älter sind als X Tage.
Für meinen Anwendungsfall ist dies jedoch nicht ausreichend.
Ich möchte, dass Dateien umbenannt werden, welche ein Änderungsdatum von X Minuten haben.

Hintergrund:
Bei einem Importprozess wird während des Imports eine PDF Datei von test.pdf in test.pdf.importing umbenannt.
Gelegentlich laufen diese auf einen Fehler und bleiben in dem Status hängen, daher soll *.importing wieder in *.pdf umbenannt werden.
Damit aktuelle Belege die sich im normalen Import-Prozess befinden nicht ungewollt zurückgesetzt werden, soll es nur für Dateien gelten die sich schon eine bestimmte Zeit in diesem Status befinden.

Vielen Dank für Eure Hilfe!
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 398974

Url: https://administrator.de/forum/batch-oder-skript-dateien-umbennen-mit-aenderungsdatum-groesser-x-minuten-398974.html

Ausgedruckt am: 16.05.2025 um 16:05 Uhr

Kraemer
Kraemer 22.01.2019 um 11:19:47 Uhr
Goto Top
Moin,

Zitat von @Darkatohm:
ich habe schon etwas recherchiert und einige Möglichkeiten gefunden Dateien umzubenennen, die älter sind als X Tage.
Für meinen Anwendungsfall ist dies jedoch nicht ausreichend.
wenn bei diesen Möglichkeiten auch nur eine Powershell-Lösung dabei gewesen ist, stimmt deine Aussage schlicht nicht

Ich möchte, dass Dateien umbenannt werden, welche ein Änderungsdatum von X Minuten haben.
überhaupt kein Problem

Gruß
NetzwerkDude
NetzwerkDude 22.01.2019 aktualisiert um 11:44:17 Uhr
Goto Top
Get-ChildItem -Filter *.import | Where-Object {$_.LastWriteTime -lt (get-date).addMinutes(-5)} | Rename-Item -NewName "test.pdf"  

Get-Childitem listet alle Dateien auf die in diesem Ordner sind - wir filter hier vorsichtshalber noch nach "irgendwas.import" - leiten das weiter via Pipe an das Filter Cmdlet Where-Object - welches prüft ob die Dateien kleiner als "jetzt minus 5 minuten ist", dieses Ergebnis leiten wir dann wiederrum per Pipe an das cmdlet das es umbenennt
emeriks
emeriks 22.01.2019 um 11:47:48 Uhr
Goto Top
Zitat von @NetzwerkDude:
-NewName "test.pdf"
Dieser Teil müsste dann aber nochmal überdacht werden.

E.
Kraemer
Kraemer 22.01.2019 aktualisiert um 11:53:32 Uhr
Goto Top
Zitat von @emeriks:

Zitat von @NetzwerkDude:
-NewName "test.pdf"
Dieser Teil müsste dann aber nochmal überdacht werden.

imho sogar der ganze Part - da fehlt doch noch die Schleife
 | Rename-Item -NewName "test.pdf"  
NetzwerkDude
NetzwerkDude 22.01.2019 aktualisiert um 12:02:45 Uhr
Goto Top
Jaja
Rename-Item -NewName {$_.Name -replace '.importing','.pdf'}  
Kraemer
Kraemer 22.01.2019 um 12:06:04 Uhr
Goto Top
Zitat von @NetzwerkDude:

Jaja
Rename-Item -NewName {$_.Name -replace '.importing','.pdf'}  
Ergebnis wäre dann "test.pdf.pdf"
NetzwerkDude
NetzwerkDude 22.01.2019 um 12:08:54 Uhr
Goto Top
Rename-Item -NewName {$_.Name -replace '.pdf.importing','.pdf'}  

in der Zeit hättest auch selber eine lösung schreiben können statt an mir rumzunörgeln :-P
Kraemer
Kraemer 22.01.2019 aktualisiert um 16:44:48 Uhr
Goto Top
Zitat von @NetzwerkDude:
in der Zeit hättest auch selber eine lösung schreiben können statt an mir rumzunörgeln :-P
na klar - nur hätte dann keiner was gelernt face-smile