2017-04-30 1 views
0

Ich versuche, eine Charge zu verwenden, um eine Datei von „aaa aaa.doc“ auf „aaa_aaa.doc“Fenster Datei Stapel von Spaces umbenennen zu Unders

ich ein Skript in der Vergangenheit geschrieben habe umbenannt zu umbenennen "aaa_aaa.doc" auf "aaa aaa.doc"

@echo off 
setlocal enabledelayedexpansion 
for %%a in (*_*) do (
    set file=%%a 
    ren "!file!" "!file:_= !" 
) 

Wie aus "ändern" auf "_" und Sonderzeichen ignorieren?

+2

Versuchen Sie, "umzubenennen" aaa aaa.doc "" aaa_aaa.doc "', es tut genau, was Ihre Frage fragte. – Compo

+0

Sie könnten [vorname.bat] (https://stackoverflow.com/a/38191137/1683264) nützlich finden. Beispiel: 'Vorname/v" s// _/g "*' – rojo

+0

Wenn Sie alle '_' durch Leerzeichen ersetzen, dann ersetzen Sie alle Leerzeichen durch' _', möglicherweise haben Sie nicht die ursprüngliche Situation (denken Sie an Leerzeichen in der Originalnamen, falls vorhanden) ... – aschipfl

Antwort

1

Sie müssen alle Schritte umkehren und Namen mit möglichen Leerzeichen zitieren.

@echo off 
setlocal enabledelayedexpansion 
for %%a in ("* *") do (
    set "file=%%a" 
    ren "%%a" "!file: =_!" 
) 
+0

Danke, es hat funktioniert. – user1397840

-2

versuchen Sie dies!

ren "current_filename.ext" "new_filename.ext"