hgfestl
Goto Top

Timestamp im Dateinamen

Hallo, Ich bin neu hier und auch neu im Thema. Mein Problem ist, dass ich alle Dateien in einem Ordner umbenennen möchte, und zwar sollen zum eigentlichen Namen auch noch das Datum und die Uhrzeit der Erstellung eingefügt werden. Ich bin schon auf ein Script gestoßen, dass fast genau das liefert.

@echo off &setlocal

set "input_dir=D:\RECORD\HP"  

for /f "tokens=1-3*" %%i in ('dir /a-d /tc "%input_dir%\*.wav"^|findstr /vbc:" "') do (  
  set "fdate=%%i"  
  set "ftime=%%j"  
  set "fname=%%l"  
  set "new_name=%%i_%%j_%%l"  
  setlocal EnableDelayedExpansion
    echo Datei: !fname!
    echo Erstellt: !fdate! !ftime!
    echo New name: !new_name!
    endlocal
    echo --------------------------------------------
)
pause

"new_name" enthält den Namen, aber ich bekomme das Rename nicht hin. Bei der Gelegenheit: "Fname" enthält auch die Endung ".WAV", daher muss ich den alten Namen and das Ende des neuen setzen. Schön wäre aber, wenn der neue Name so aussieht: "AlterName_Datum_Uhrzeit.WAV". Kann mir da jemand helfen?

Vielen Dank im voraus!

Content-ID: 5935410080

Url: https://administrator.de/forum/timestamp-im-dateinamen-5935410080.html

Ausgedruckt am: 26.03.2025 um 11:03 Uhr

DarkZoneSD
DarkZoneSD 10.02.2023 um 22:05:37 Uhr
Goto Top
Moin,

geht das auch per PowerShell oder ist batch pflicht?

Grüße
5175293307
Lösung 5175293307 10.02.2023, aktualisiert am 11.02.2023 um 16:55:49 Uhr
Goto Top
Fname" enthält auch die Endung ".WAV",
So ohne Extension
set "fbasename=%%~nl"  
So nur Extension
set "fextension=%%~xl"  
==> https://ss64.com/nt/syntax-args.html
Feddisch
@echo off
PowerShell -EP Bypass -C "Get-ChildItem 'D:\Record\HP' -File -Filter *.wav | ?{$_.Basename -notmatch '\d{8}_\d{6}$'} | rename-item -NewName {$_.Basename + '_' + $_.CreationTime.toString('yyyyMMdd_HHmmss') + $_.Extension} -Force -Verbose"  
Wurstel
HGFestl
HGFestl 11.02.2023 um 12:12:27 Uhr
Goto Top
Vielen Dank für die schnelle Antwort!
Allerdings bekomme ich folgende Fehlermeldung:

In Zeile:1 Zeichen:87

back-to-top... HP' -File -Filter *.wav | rename-item -NewName {$_.Basename + _ + $_. ...

back-to-top~

Sie müssen nach dem Operator "+" einen Wertausdruck bereitstellen.
(... und ein paar mehr Zeilen!)

Liegt vielleicht auch daran, weil ich noch nie etwas mit Powershell gemacht habe, sorry...
5175293307
5175293307 11.02.2023 aktualisiert um 15:06:29 Uhr
Goto Top
Sorry Tippfehler meinerseits, ist oben korrigiert.
HGFestl
HGFestl 11.02.2023 um 16:31:28 Uhr
Goto Top
Es funktioniert!! - Fast...
Manchmal - offenbar recht willkürlich, ruft das Programm die Datei 2 mal auf, und hängt die Daten auch 2 mal rein!
Mal nur an einer Datei, manchmal an allen...
Trotzdem schon mal Danke soweit, vor allem für die schnelle Antwort!
5175293307
5175293307 11.02.2023 aktualisiert um 16:54:00 Uhr
Goto Top
Nö kann ich nicht nachstellen, wäre auch nicht normal da stimmt was bei dir nicht, wenn du das natürlich doppelt auf das Verzeichnis laufen lässt ist klar das das Datum dann doppelt dran hängt 😉, das lässt sich aber abfangen wenn man will (hab ich mal oben noch ergänzt dann ist es egal ob es mehrfach auf das selbe Verzeichnis angewendet wird).

Guckst du hier die einwandfreie Demo
https://tio.run/##XYzNCsIwEITvPkUOhfhDCiqIN8Gi1kN70aNQollsoEkkWVul9tlrWg ...
Is ja auch ehrlich gesagt Pippifax ...
HGFestl
Lösung HGFestl 11.02.2023 um 17:06:57 Uhr
Goto Top
Nochmals vielen Dank, jetzt klappt es!
Ich werde vermutlich noch weitere Pippifax-Fragen dazu haben und freue mich, hier kompetente Hilfsbereitschaft zu finden!