CMD Verzeichnissübergreifend Dateiendung ändern?
Ich hätte eine Frage und zwar wie kann ich auf Verzeichnissübergreifend dateiendungen per cmd ändern
bitte um antwort
3 Antworten
@echo off
rem hier pfad zum "durcharbeiten" angeben...
set "filePath=meinPfad"
rem dieser Abschnitt ist lediglich zu Demozwecken und kann entfernt werden
rem und erzeugt einen Pfad mit Unterordner und Textdateien
md "%filePath%"
md "%filePath%\subfolder"
for /l %%a in (1,1,10) do (
echo. >"%filePath%\meinText1%%a.txt"
echo. >"%filePath%\subfolder\meinText2%%a.txt"
)
dir /b /s "%filePath%\*.txt"
rem ende Deomo erzeugen.
rem diese Schleife durchsucht den oben angegebenen Pfad nach Dateien mit der Extension .txt
for /f "tokens=*" %%a in ('dir /b /s "%filePath%\*.txt"') do (
rem ..und benennt die gefundenen Datein nach name.docx um.
ren "%%a" "%%~na.docx"
)
pause
PS: nicht auf die ganze Festplatte anwenden. Es gibt auch andere Programme, welche durchaus Dateien mit der Endung .txt erwarten. Diese werden dann nicht mehr in gewünschter Weise funktionieren.
Anschließend würdest Du hier Fragen warum dieses oder jenes Programm/Spiel nicht mehr funktioniert
REM Als Direkte Eingabe in der Kommandozeile.
:: FOR /R .\ %X IN (*.txt) DO REN "%X" *.docx
REM Als Batch-Datei, aus Grundverzeichnis starten.
FOR /R .\ %%X IN (*.txt) DO REN "%%X" *.docx
Könnte es das sein, was du suchst?
Wegen geschehen...👍
Der Bug besteht bereits seit es noch das 8.3 Dateisystem gab.
Das Problem bei Batch ist, das irgendwelche abseitigen Reaktionen eines Befehls sehr schnell für andere Zwecke "misbraucht" werden und somit wieder nützlich sind. Etwas zu Fixen würde Bedeuten das andere Sachen dann nicht mehr funktionieren.
Dies dürfte ein Grund sein weshalb Fehler in Batchbefehlen generell über Jahrzehnte erhalten bleiben.
Du könntest eine Batch-Datei schreiben, sofern die Endungen automatisiert (also nicht individuell) geändert werden werden können:
https://www.google.com/search?client=firefox-b-d&q=datei+umbennenn+mit+batch
Die Angabe von *.ext als Ziel kann unter gewissen seltenen Umständen zu recht unerwünschten Ergebnissen führen.
Bei ren sollte man tunlichst auf auf Wildcards verzichten , da ren einige Bugs in Bezug auf diese hat.
Da durch die Schleife bereits alle Namen komplett zur Verfügung stehen kann man den Zielnamen auch konkret übergeben: ren "%%X" "%%~nX.docx"
...und fährt auf Nummer sicher.
FOR /R .\ %%X IN (*.txt) DO ... for /r hat ebenfalls einige interne Fehler (leserecursion bei großen Dateimengen) . Deshalb besser mit for /f "tokens=*" %%X in ('dir /b /s "*.txt" ') do ... arbeiten.