Batch um Zeichenketten aus Dateinamen zu entfernen

#1
Hey,
in Java wüsste ich wie ich es schreiben könnte, aber in .bat bin ich nicht allzu fit deswegen bräuchte ich mal euer Genie.

Geschichte:
Ich habe bei meiner Tante Windows neu aufgespielt und ihre Dateien über (zum ersten und letzten mal xD )Dateiversionsverlauf gesichert. Nur akzeptiert Windows diesen FileHistory Ordner nicht mehr.:mauer:

Ziel:
Jetzt wollte ich (da die Dateien original beibehaltet werden, nur mit einem Zusatz(Datum versehen werden)) ein Programm schreiben, das sich jede Datei in allen Unterordnern vornimmt, den Namen zwischenspeichert, die Zeichenkette, die in allen Dateien gleich ist, abziehen und die Datei so bennen.
Ich verstehe jedoch auf die Schnelle den "for Befehl" von cmd nicht :rolleyes:

Ich hoffe mir kann einer behilflich sein.
Somit wünsche ich noch einen schönen 2ten Weihnachtsfeiertag,
Norman
 
#4
Ok, wie im Bild zu sehen sind in den Ordnern und Unterornern Dateien und diese Dateien wurden mit gewissem Suffix ergänzt.
Das Programm sollte die Ordner und Unterornder durchsuchen (meinetwegen reicht aber auch der Ordner in dem es liegt, bin über jede Hilfe froh :)) und diesen Suffix entfernen
Unbenannt.PNG
 

German

Well-Known Member
c-b Experte
#5
Etwa so:
Bash:
@echo off &setlocal
for /f "delims=" %%i in (
  'dir /a-d /b /s^|findstr /rec:" (20[0-9][0-9]_[01][0-9]_[0-3][0-9] [0-2][0-9]_[0-5][0-9]_[0-5][0-9] UTC)\.[^\.\\]*"'
) do (
  set "f_path=%%~fi"
  set "f_name=%%~ni"
  set "f_ext=%%~xi"
  setlocal EnableDelayedExpansion
  ren "!f_path!" "!f_name:~0,-26!!f_ext!"
  endlocal
)
 
#6
Etwa so:
Code:
@echo off &setlocal
for /f "delims=" %%i in (
  'dir /a-d /b /s^|findstr /rec:" (20[0-9][0-9]_[01][0-9]_[0-3][0-9] [0-2][0-9]_[0-5][0-9]_[0-5][0-9] UTC)\.[^\.\\]*"'
) do (
  set "f_path=%%~fi"
  set "f_name=%%~ni"
  set "f_ext=%%~xi"
  setlocal EnableDelayedExpansion
  ren "!f_path!" "!f_name:~0,-26!!f_ext!"
  endlocal
)
boar danke <3 Das muss ich morgen direkt mal probieren :D
 
Oben