2

Скажем, у меня есть дерево папок, например:

C:\Users\Test\My Documents
C:\Users\Test2
C:\Users\Test3\My Documents

Какую команду можно запустить для поиска через C:\Users чтобы проверить, какие подпапки имеют папку « My Documents »?

Так что для вышеупомянутого это вернулось бы с:

C:\Users\Test\My Documents
C:\Users\Test3\My Documents

Но нет

C:\Users\Test2

Кроме того, если бы я хотел написать сценарий, переименовывая любые подпапки, которые, как оказалось, называются My Documents и переименовать их просто в « Documents , как я мог добиться этого?

2 ответа2

6
DIR /AD /B "My Documents" /S

для перечисления папок

-1

Вот vbscript, который также переименует папки для вас:

Root = INPUTBOX("Please enter the root folder (all subfolders will be renamed)" & vbcrlf & "e.g. C:\TEST")
IF Root="" THEN Canceled

FindStr = INPUTBOX("Please enter the string that you want to find")
IF FindStr = "" THEN Canceled

ReplaceStr = INPUTBOX("Please enter the string that you want to replace it with")
IF ReplaceStr = "" THEN Canceled

SET objFSO= CREATEOBJECT("Scripting.FileSystemObject")

EnumFolders Root

SUB EnumFolders(BYVAL Folder)
    SET objFolder = objFSO.GetFolder(Folder)
    SET colSubfolders = objFolder.Subfolders

    FOR EACH objSubfolder in colSubfolders
        NewFolderName = (REPLACE(objSubfolder.name, findstr, replacestr))
            IF NewFolderName <> objSubFolder.Name THEN
                objSubFolder.Name = NewFolderName
            END IF
        enumfolders objSubfolder.path
    NEXT

END SUB

SUB Canceled
    wscript.echo "Script Canceled"
    wscript.quit
END SUB

Источник: http://www.wisesoft.co.uk/scripts/vbscript_recursive_folder_rename.aspx

PS: я не проверял это. Пожалуйста, сначала протестируйте с пустой структурой каталогов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .