VBS Заменить символы из имен файлов всех файлов в папке и подпапках

1351
VCS

Мне нужно изменить множество имен файлов, избавиться от специальных символов (например, - но лучше, если бы он мог быть адаптирован для списка значений вместо одного за раз). Я не опытный VBS, но уже нашел какой-то код и попытался сделать его математическим мои потребности, но все равно он не работает.

Этот код изменяет файлы в указанной папке «C: \ Users \ user \ Desktop \ test», но не в подпапках после этого пути.

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 

Любая помощь, пожалуйста?

0

1 ответ на вопрос

1
davidmneedham

Вы не используете Subfolderэлемент в вашем цикле.

Альтернативное рекурсивное решение ниже:

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  

Похожие вопросы