Batch Windows menemukan folder jika pernyataan

0

Asumsikan sistem file dengan format berikut

Folder A
---> Folder 1
---> Folder 2
---> Folder 3 dll.
Folder B
---> Folder 4
---> Folder 2
---> Folder 3
Folder C
---> Folder 1
---> Folder 2
---> Folder 3
---> Folder 4

Saya perlu pergi satu tingkat dalam, dan hanya satu tingkat dalam, dan mencari 'Folder 1'. Jika Folder 1 ada di sana, maka hapus Folder 2 dan Folder 3.

Saya bisa menggunakan file batch Windows atau bahasa pemrograman lain.

pengguna1983916
sumber
Apa yang sudah Anda coba dan apa yang tidak berhasil? Bisakah Anda memposting salah satu contoh skrip Anda?
jscott
untuk keperluan pengujian
user1983916
untuk / D / Rc: \ test% X IN (* .sesuatu) DO echo% X> test.txt. Bagaimana cara mencocokkan nama folder yang tepat?
user1983916
dan itu tidak hanya mencapai satu level
user1983916
1
Bisakah Anda menggunakan Powershell? Dan apakah Anda akan tahu nama-nama sub-folder (misalnya Folder 2, Folder 3 ...) sebelumnya? Atau Anda ingin menghapus semua yang ada di bawah folder tingkat pertama jika "folder 1" ada?
jscott

Jawaban:

0

Script berikut (atau baris) akan memeriksa semua direktori dalam direktori saat ini sedalam satu level untuk keberadaan Folder1\NUL, trik jelek yang terkenal untuk membedakan file dari direktori. Berhati-hatilah di sekitar direktori yang berisi spasi; mereka dapat diuraikan sebagai dua lokasi terpisah untuk rmdirmelakukan kerusakan.

for /D %%i in (*) do (
    if exist .\%%i\Folder1\NUL (
        rmdir /S .\%%i\Folder2
        rmdir /S .\%%i\Folder3
    )
)
Marcks Thomas
sumber
Sepertinya apakah setiap folder di direktori saat ini tetapi tidak ke folder di direktori itu? Sebagai contoh dalam posting saya di atas, saya harus masuk ke Folder A, B dan C dan menemukan folder
user1983916
ah nevermind, saya melihat di mana ia masuk ke folder sekarang
user1983916