webentwicklung-frage-antwort-db.com.de

So benennen Sie eine Datei um, indem Sie die Teilzeichenfolge mithilfe von Batch in Windows ersetzen

Ich möchte den Dateinamen wie folgt umbenennen: "how-to -mbenennen - file.jpg" to "how-to -wiederverwenden - file.jpg " mithilfe einer Windows-Batchdatei

Das heißt Ich möchte nur ein oder zwei Wörter in einem Dateinamen ersetzen.

20
Varun
@echo off

Set "Filename=how-to-rename-file.jpg"
Set "Pattern=rename"
Set "Replace=reuse"

REM Call Rename "%Filename%" "%%Filename:%Pattern%=%Replace%%%"

Call Echo %%Filename:%Pattern%=%Replace%%%
:: Result: how-to-reuse-file.jpg

Pause&Exit

Ich gebe Ihnen ein anderes Beispiel für eine Schleife von Dateien:

AKTUALISIEREN:

Ich habe einige Dinge in der Syntax verpasst, weil ich meine letzte Bearbeitung schnell getippt habe. Hier ist der korrigierte Code:

@echo off
Setlocal enabledelayedexpansion

Set "Pattern=rename"
Set "Replace=reuse"

For %%# in ("C:\Folder\*.jpg") Do (
    Set "File=%%~nx#"
    Ren "%%#" "!File:%Pattern%=%Replace%!"
)

Pause&Exit

PS: Weitere Informationen zu Teilzeichenfolgen finden Sie hier: http://ss64.com/nt/syntax-substring.htmlhttp://ss64.com/nt/syntax- replace.html

43
ElektroStudios

Der obige Code benennt die Dateien nicht um - Die Pfade sind ein Problem und der Quelldateiname ist falsch.

Dies funktioniert für Dateien im aktuellen Ordner - außer für Dateien mit! in den Namen wird ein Problem sein.

@echo off
Setlocal enabledelayedexpansion

Set "Pattern=rename"
Set "Replace=reuse"

For %%a in (*.jpg) Do (
    Set "File=%%~a"
    Ren "%%a" "!File:%Pattern%=%Replace%!"
)

Pause&Exit
32
foxidrive