Im Dateinamen den ERSTEN Unterstrich durch Punkt ersetzen (immer drittes Zeichen)
Ich habe die Frage hier schon gestellt:
Batch Alle Dateien in einem Ordner umbenennen Punkt durch Unterstrich ersetzen
jedoch bin ich mir nicht sicher ob das da noch jemand ließt !?
habe den Code übernommen und es funktioniert wunderbar
@echo off&setlocal
for %%i in ("C:\...\*_*") do (
set "neu=%%~ni"
for /f "delims=" %%j in ('call echo "%%neu:_=.%%"') do ren "%%~i" "%%~j%%~xi"
)
nur damit werden ALLE Unterstriche im Dateinamen durch Punkte ersetzt.
Ich würde dies aber nur für das dritte Zeichen benötigen. Also AB_CD_E.pdf wird AB.CD_E.pdf bzw. aus AB_CD_E.pdf wird AB.CD_E.pdf
Habe leider nur sehr begrenzte Kenntnisse und würde gerne wissen ob das geht? Es vereinfacht ja wahrscheinlich die Sache, dass es sich immer um das dritte Zeichen von links dreht!?
Bin für jede Hilfe dankbar!
Gruß
Batch Alle Dateien in einem Ordner umbenennen Punkt durch Unterstrich ersetzen
jedoch bin ich mir nicht sicher ob das da noch jemand ließt !?
habe den Code übernommen und es funktioniert wunderbar
@echo off&setlocal
for %%i in ("C:\...\*_*") do (
set "neu=%%~ni"
for /f "delims=" %%j in ('call echo "%%neu:_=.%%"') do ren "%%~i" "%%~j%%~xi"
)
nur damit werden ALLE Unterstriche im Dateinamen durch Punkte ersetzt.
Ich würde dies aber nur für das dritte Zeichen benötigen. Also AB_CD_E.pdf wird AB.CD_E.pdf bzw. aus AB_CD_E.pdf wird AB.CD_E.pdf
Habe leider nur sehr begrenzte Kenntnisse und würde gerne wissen ob das geht? Es vereinfacht ja wahrscheinlich die Sache, dass es sich immer um das dritte Zeichen von links dreht!?
Bin für jede Hilfe dankbar!
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 250588
Url: https://administrator.de/contentid/250588
Ausgedruckt am: 08.11.2024 um 05:11 Uhr
9 Kommentare
Neuester Kommentar
wenn ich jetzt aber nochmal drauf klicke, ändert er auch den zweiten unterstrich in einen punkt.
Natürlich. Dein Pattern ist "*_*", und solange das zutrifft, wird weiter geändert. Du musst also die Dateien ausschließen, bei denen irgendwo ein Punkt vor einem Unterstrich steht.@echo off &setlocal
pushd "C:\..."
for /f "delims=" %%i in ('dir /a-d /b "*_*" ^| findstr /rvc:"\..*_"') do (
for /f "tokens=1* delims=_" %%j in ("%%~nxi") do ren "%%~i" "%%j.%%k"
)
popd
Grüße
rubberman
pushd "C:\..." [was kommt hier für "..." hin? nur der ordnerpfad?]
Richtig.for /f "delims=" %%i in ('dir /a-d /b "*_*" ^| findstr /rvc:"\..*_"') do ( [was würde dann hier bei ".." hinkommen?]
Das lässt du wie es ist. Die Hilfe zu FINDSTR verrät dir was das zu bedeuten hat, bzw. ich kann das Pattern auch kurz erklären:\. Steht für einen Punkt
.* Steht für ein beliebiges Zeichen, das nicht, einmal oder mehrfach auftreten kann
_ Ist der Unterstrich
Normalerweise würde FINDSTR also genau solche Dateinamen finden, bei denen ein Punkt irgendwo vor einem Unterstrich kommt. Durch die Option /v wird die Logik aber umgekehrt und diese Dateien werden ausgefiltert.
Grüße
rubberman