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?


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


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.


itu tidak persis apa yang dia tanyakan dalam pertanyaan
— Saksham Goyal
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.