VBS Sostituisce i caratteri dai nomi di file di tutti i file nella cartella e nelle sottocartelle


0

Ho bisogno di cambiare un sacco di nomi di file, di eliminare caratteri speciali (ç, ad esempio), ma è meglio se potrebbe essere adattato per un elenco di valori anziché uno alla volta). Non sono molto esperto, ma ho già trovato un codice e ho provato a renderlo matematico i miei bisogni, ma ancora non funziona.

Questo codice cambia i file nella cartella specificata "C: \ Users \ user \ Desktop \ test", ma non quelli nelle sottocartelle dopo quel percorso.

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

Qualsiasi aiuto, per favore ??

Risposte:


1

Non stai usando il Subfolder elemento nel tuo ciclo.

Una soluzione ricorsiva alternativa è qui sotto:

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 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.