VBS Ersetzen Sie Zeichen aus Dateinamen aller Dateien in Ordnern und Unterordnern

1387
VCS

Ich muss viele Dateinamen ändern und Sonderzeichen loswerden (z. B. ç - aber es ist besser, wenn sie für eine Liste von Werten anstatt für einen einzelnen Wert angepasst werden könnten). Ich bin kein VBS-Kenner, habe aber schon etwas Code gefunden und versucht, es meinen Bedürfnissen anzupassen, aber es funktioniert immer noch nicht.

Dieser Code ändert die Dateien im angegebenen Ordner "C: \ Users \ user \ Desktop \ test", nicht jedoch die Dateien in den Unterordnern hinter diesem Pfad.

Set objFso = CreateObject("Scripting.FileSystemObject") Set Folder = objFso.GetFolder("C:\Users\user\Desktop\test")  For Each Subfolder in Folder.SubFolders 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 Next 

Hilfe, bitte?

0

1 Antwort auf die Frage

1
davidmneedham

Sie verwenden das SubfolderElement nicht in Ihrer Schleife.

Eine alternative rekursive Lösung ist unten:

Set objFso = CreateObject("Scripting.FileSystemObject") Browsefolder objFso.GetFolder("C:\Users\user\Desktop\test")  Sub Browsefolder(Folder) For Each Subfolder In Folder.Subfolders Browsefolder Subfolder Next 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 End Sub