Ich möchte alle Unterstriche ( _
) durch Leerzeichen ( ) in einem Dateinamen ersetzen .
Wie kann ich das schnell tun, wenn ich viele _
Charaktere zu ersetzen habe?
Ich möchte alle Unterstriche ( _
) durch Leerzeichen ( ) in einem Dateinamen ersetzen .
Wie kann ich das schnell tun, wenn ich viele _
Charaktere zu ersetzen habe?
Antworten:
vbScript sollte es für Sie tun. Erstellen Sie eine Datei mit dem Namen "rename_underscores.vbs", die Folgendes enthält.
Set objFso = CreateObject("Scripting.FileSystemObject")
Set Folder = objFSO.GetFolder("c:\test\")
For Each File In Folder.Files
sNewFile = File.Name
sNewFile = Replace(sNewFile,"_"," ")
if (sNewFile<>File.Name) then
File.Move(File.ParentFolder+"\"+sNewFile)
end if
Next
Stellen Sie sicher, dass der Ordnername korrekt ist. (In dem Beispiel habe ich c: \ test verwendet.) Doppelklicken Sie anschließend auf Ihre Datei, um die Umbenennung vorzunehmen.
Dies liegt im Bereich einer dos bat-Datei. Erstellen Sie eine Fledermausdatei (Neu-> Textdatei, Erweiterung in .bat umbenennen) und kopieren Sie die blauen Abschnitte darunter hinein.
Ich werde es in Abschnitte aufteilen und erklären, was es tut.
Gibt den aktuellen Status des Verzeichnisses zum späteren Vergleich aus
dir /b
Listen Sie die Dateien im Verzeichnis auf. Rufen Sie dann ProcessFile für alle Dateien auf, die einen Unterstrich enthalten und mit .txt enden.
for %%f in (*_*.txt) do call :ProcessFile %%f
goto :finished
Die Syntax "str =% str: x = y%" ersetzt Instanzen von x durch y. In diesem Fall ersetzen wir "_" durch nichts
:ProcessFile
set str=%1
rename %1 %str:_=%
goto :eof
Das ist es!
Jetzt wird nur das ausgegeben, was geändert wurde, damit wir bestätigen können, dass es wie erwartet funktioniert.
:finished
echo ----
dir /b
Ergebnisse (Nicht Teil der Fledermausdatei)
baz_ing.txt
big_rawr.foo
foo_bar.txt
multiple_underscores_test.txt
----
bazing.txt
big_rawr.foo
foobar.txt
multipleunderscorestest.txt
Ich empfehle die Verwendung eines Tools von Drittanbietern wie das Bulk Rename Utility . Es ist kostenlos und hat ein Installationsprogramm mit weniger als 1 MB.
Wie bereits erwähnt, gibt es keine Möglichkeit, genau das zu tun, was Sie möchten, ohne ein Skript oder eine Batch-Datei zu verwenden. In PowerShell können Sie beispielsweise ganz einfach das tun, was Sie möchten:
cd "C:\Users\MyName\Documents\MyDirectory"
Dir | Rename-Item –NewName { $_.name –replace "_"," " }
Stellen Sie einfach sicher, dass Sie "C: \ Users \ MyName \ Documents \ MyDirectory" durch den Pfad zu Ihrem Verzeichnis ersetzen.
Für weitere Einzelheiten und andere Optionen, darunter auch einige Dinge , die Sie können nur Explorer tun, siehe hier: http://www.howtogeek.com/111859/how-to-batch-rename-files-in-windows-4-ways- Mehrere Dateien umbenennen /
Hier ist mein Batch-Umbenennungs-Ruby-Skript . Ich habe keine anderen Tools zum Batch-Umbenennen verwendet, aber ich denke, mein Skript ist sehr einfach zu verwenden und sehr vielseitig. Hier ist der Befehl für Ihren Fall:
ruby bren.rb *_* "_/ "
Ich habe meine Windows-Umgebung so eingerichtet, dass bren.rb von jedem Verzeichnis aus als ausführbare Datei ausgeführt werden kann.
Windows-basiertes Umbenennungstool, das leistungsstärkste, das es gibt, und es ist kostenlos. http://www3.telus.net/pfrank/
Dies beantwortet die Frage nicht explizit ('.. im Explorer'), aber ich fand die nützlichste Software, um dies zu tun, Adobe Bridge (Free)
Zusätzlicher Bonus: Unterstützt Regex!