Buat skrip windows untuk melintasi semua subfolder dari beberapa folder, dan hapus folder tertentu dan semua isinya jika ada [ditutup]

-3

inilah triknya. Andaikata saya ingin mengosongkan ruang, dan menjalankan skrip itu di F: \ UnrealProjects, yang memiliki sedikit lebih dari 50-60 subfolder, saya ingin skrip itu untuk melintasi semua subfoldernya, periksa apakah mengandung folder bernama Binaries, Build, Intermediatedan hapus semua yang ada di dalamnya termasuk Binaries, Build, Intermediatefolder itu sendiri itu ada.

Saya tidak cukup malas untuk melakukannya secara manual sekali, tetapi ketika membuka kembali beberapa proyek, mereka melakukan sebagian atau sepenuhnya membangun kembali diri mereka sendiri dan itu memakan ruang karena saya benar-benar tidak membutuhkannya dibangun sepenuhnya setiap saat. Saya hanya perlu membuatnya diarsipkan :) Dan hanya membangun yang ingin saya buat. Saya akan sangat suka memiliki ini dalam bentuk naskah tanpa (jujur ​​berbicara) harus menulis sendiri dan belajar cara terbaik untuk melakukannya.

Saya tahu itu tidak terlalu keren hanya terang-terangan meminta bantuan / seseorang untuk membuat skrip ini untuk saya, tetapi sekali lagi itu hanya hal satu kali.

Terima kasih atas bantuannya di muka guys (atau cewek-cewek), itu dihargai banyak. Namun, jika seseorang memiliki ide yang lebih baik untuk mengulang pertanyaan ini, saya setuju dan sangat terbuka untuk saran.

EDIT:

Ok, hanya untuk memperjelas. Saya ingin memasukkan skrip ini ke dalam U:\Projects. Saya ingin menjalankannya dari U:\Projectsdan saya ingin untuk melintasi semua subfolder dari arus projectsfolder (alias semua proyek), dan menghapus Build, Binariesdan Intermediatefolder jika mereka ada dalam proyek saat-dilihat. Saya tidak ingin harus meletakkan skrip ini di setiap proyek, dan menjalankannya dari sana untuk hanya menghapus tiga folder yang mungkin ada atau tidak ada.

Saya harap saya membuatnya lebih jelas sekarang.

EDIT2: Inti dari skrip ini adalah untuk hanya 'membersihkan' semua file antara, membangun dan menyimpan dari folder proyek, sambil menjaga sisanya tetap utuh sehingga saya dapat membangun kembali nanti di beberapa titik.

Yang berarti, - untuk setiap folder di U:\Unreal Projects - delete currentFolder\Build, currentFolder\Intermediate\,currentFolder \ Saved ,currentFolder \ Binaries`

dan itu saja :) terima kasih kepada semua orang untuk mencoba membantu atau berkontribusi (y)

EDIT3:

Entah bagaimana, saya beralih ke PowerShell. Inilah yang saya dapatkan sejauh ini. ls -Recurse -Include Build, Binaries, Intermediate, Saved | Remove-Item -Force -Recurse Namun, ada dua masalah dengan ini.

Problem1 - saya benar-benar ingin tidak menghapus atau memasukkan Plugins\Binariesatau entah bagaimana sepenuhnya melewati folder Plugins. Tapi itu bukan masalah terbesar karena ....

Hiu
sumber
Sayangnya, kami bukan layanan penulisan kode. Alih-alih hanya meminta kode untuk melakukan tugas tertentu, tolong tunjukkan kepada kami apa yang telah Anda coba sejauh ini (termasuk kode apa pun yang Anda miliki saat ini) dan di mana Anda terjebak sehingga kami dapat membantu Anda dengan masalah spesifik Anda. Pertanyaan yang hanya meminta kode terlalu luas dan cenderung ditunda atau ditutup .
bwDraco
Saya sudah menyelesaikannya setelah menyaksikan banyak komentar negatif atau downvotes. Namun, itu tidak akan membiarkan saya menerima jawaban saya sendiri sampai besok sehingga memberi semua orang kesempatan untuk mendapatkan beberapa upvotes atau "komentar yang berguna" atau hanya meningkatkan solusi PowerShell saya saat ini yang melakukan pekerjaan dengan baik IMO.
Shark

Jawaban:

1
@echo off

for /F %%i in ('dir /b /a:d') do (
    dir /b /d %%i\build 2>NUL && echo rmdir /q /s %%i
)

Hapus gema sebelum rmdir jika Anda menemukan itu melakukan apa yang Anda inginkan? PERINGATAN ini agak belum teruji jadi hati-hati mungkin lebih baik gema ke file dan jalankan dari sana setelah edit.

joojaa
sumber
Apakah ini berfungsi untuk folder Bangun, Binari, dan Menengah? Bagaimana cara menambahkan dua folder lagi di dalamnya? Saya melihat bahwa itu hanya mencoba dengan Build.
Shark
Maaf, saya baru saja mencobanya dan ... itu memang menemukan beberapa folder yang berisi Buildfolder, tetapi output gema dari perintah masih rmdir /q /s MyProjectyang seharusnya lebih seperti rmdir /q /s MyProject/Buildtidak? Tetapi setelah melihat bug, saya pikir saya akan bisa memperbaikinya. Terima kasih atas bantuannya teman saya :)
Shark
tidak, maaf, itu benar-benar tidak berfungsi sama sekali, itu bahkan tidak pergi melalui semua subfolder Projectsfolder dan mendeteksi setiap instance Build, Intermediateatau Binariessubfolder dari setiap proyek. Terima kasih telah memberi tahu saya untuk menjalankannya dalam mode gema, karena itu akan benar-benar menghapus setengah dari ruang kerja saya.
Shark
@ hiu Anda harus menjalankannya di folder tempat Anda memiliki subfolder, jadi itu harus dijalankan di F: \ UnrealProjects . Jika tidak, maka Anda harus mengubah pertanyaan Anda
joojaa
@ Hiu, maksud Anda, Anda perlu melintasi sub folder juga?
joojaa
0

Jadi, setelah mencoba beberapa malang, inilah yang menyelesaikan masalah bagi saya.

Saya membuat powershell-clean.batfile, berisi yang berikut ini

echo 'this won't touch Binaries subfoldrs, only (Build, Intermediate, Saved).  
powershell.exe -ExecutionPolicy Bypass -Command "ls -Recurse -Include Build, Intermediate, Saved | rmdir -Force -Recurse"   

Saya harus menyimpan Binariesfolder itu, karena ketika saya memasukkannya ke dalam naskah, itu juga nukes saya Project\Plugins\Binariesyang merupakan besar tidak-tidak. Di sisi lain, saya mencadangkan plugin dan menjalankan skrip, dan tiba-tiba memiliki 74.9GB bukannya 546MB freespace.

Hiu
sumber