Командная строка Windows найти определенное имя папки в подпапках


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Как я мог достичь этого?


не было бы dir /b "My Documents" Работа? Если нет, вы можете разобрать его dir /B | findstr /R /C:"My\sDocuments"... Я думаю, это сработает, у меня нет установленной Windows. Переименовать использовать ren,
Alex

Таким образом, в этом случае вы хотите переименовать «Тест» в «Документы» или «Мои документы» в «Документы»?
tumchaaditya

Может быть, эта тема полезна для вас: stackoverflow.com/questions/9271107/...
bummi

@tumchaaditya Я хотел переименовать мои документы в документы.
Guest23408290

Ответы:


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

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


Я буду откладывать до bummi, я забыл переключатель / D;)
Jason H

1
@bummi Спасибо! Это перечисляет именно то, что я хотел.
Guest23408290

@Karan Фильтрует результаты только по каталогам, исключая файлы.
jpmc26

-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: я не проверял это. Пожалуйста, сначала протестируйте с пустой структурой каталогов.


это не совсем то, что он спрашивает в вопросе
Saksham Goyal
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.