Prompt perintah Windows menemukan nama folder tertentu di sub folder

2

Katakanlah saya punya pohon folder seperti:

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

Perintah apa yang bisa saya jalankan untuk mencari C:\Usersuntuk memeriksa sub folder mana yang memiliki My Documentsfolder?

Jadi untuk yang di atas akan kembali dengan:

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

Tapi tidak

C:\Users\Test2

Juga, jika saya ingin skrip mengubah nama sub folder yang ditemukan dipanggil My Documentsdan mengganti nama ini menjadi adil Documents, bagaimana saya bisa mencapai ini?

Tamu23408290
sumber
Tidak akan dir /b "My Documents"bekerja Jika tidak, Anda dapat menguraikannya dir /B | findstr /R /C:"My\sDocuments"... Saya kira itu akan berhasil, saya tidak menginstal Windows di sini. Untuk mengganti nama penggunaan ren.
Alex
Jadi dalam hal ini, Anda ingin mengganti nama "Uji" menjadi "Dokumen" atau "Dokumen Saya" menjadi "Dokumen"?
tumchaaditya
mungkin utas ini berguna untuk Anda: stackoverflow.com/questions/9271107/…
bummi
@tumchaaditya Saya ingin mengubah nama Dokumen Saya menjadi Dokumen.
Tamu23408290

Jawaban:

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

untuk daftar folder

bummi
sumber
Saya akan tunda bummi, saya lupa tombol / D;)
Jason H
1
@bummi Terima kasih! Itu daftar persis apa yang saya inginkan.
Tamu23408290
@Karan Ini menyaring hasil ke direktori saja, meninggalkan file.
jpmc26
-1

Berikut ini adalah vbscript yang juga akan mengganti nama folder untuk Anda:

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

Sumber: http://www.wisesoft.co.uk/scripts/vbscript_recursive_folder_rename.aspx

PS: Saya belum mengujinya. Silakan uji dengan struktur direktori kosong terlebih dahulu.

tumchaaditya
sumber
itu tidak persis apa yang dia tanyakan dalam pertanyaan
Saksham Goyal