O prompt de comando do Windows localiza um nome de pasta específico em subpastas

2

Digamos que eu tenha uma árvore de pastas como:

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

Qual comando posso executar para pesquisar em C:\Users para verificar quais subpastas têm uma pasta My Documents ?

Então, para o acima, ele retornaria com:

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

Mas não

C:\Users\Test2

Além disso, se eu quisesse renomear scripts de quaisquer subpastas que fossem chamadas de My Documents e renomeá-las para apenas Documents , como eu poderia conseguir isso?

    
por Guest23408290 04.06.2013 / 13:26

2 respostas

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

para listar as pastas

    
por 04.06.2013 / 13:46
-1

Aqui está um vbscript que também renomeia as pastas para você:

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

Fonte: link

PS: Eu não testei isso. Por favor, teste primeiro com uma estrutura de diretórios vazia.

    
por 04.06.2013 / 16:21