Ich habe eine Datei mit dem Namen - zum Beispiel: 01_XXXXXXXX_XXXX_XXX.txt
.Ersetzen Sie Zeichen in Dateiname durch .bat
Ich brauche die ersten drei Zeichen Streifen aus (ersetzen 01_
durch nichts), und ersetzen Sie die restlichen _
durch Spaces.
Ich kann PowerShell nicht verwenden, ich brauche eine einfache .bat
Datei, um alle Dateien in dem Verzeichnis, in dem es vorhanden ist, durchlaufen und diese Aufgabe ausführen.
Also das ich verwende:
@echo off
setlocal enabledelayedexpansion
for %%a in (*_*) do (
set file=%%a
ren "!file!" "!file:_= !"
)
@echo off
setlocal enabledelayedexpansion
set X=2
for %%f in (*) do if %%f neq %~nx0 (
set "filename=%%~nf"
set "filename=!filename:~%X%,-%X%!"
ren "%%f" "!filename!%%~xf"
)
popd
Aber es isst zwei Zeichen am Ende vor der Verlängerung und das Hinzufügen eines SPACE am Anfang.
Irgendeine Idee warum?
Yup es ist :) Google-Suche, wie die ersten x Zeichen einer Zeichenkette in Batch trimmen und dann Google-Suche String-Ersatz in Batch :) Für die Schleifenprüfung 'For /?'. – geisterfurz007
Nur nebenbei, warum haben Sie zwei '@echo off' und zwei' setlocal' Anweisungen in derselben Datei und ein 'popd' ohne' 'pushd''? –