Saya ingin menghapus semua file dari struktur folder, jadi saya pergi dengan struktur folder kosong.
Apakah ini dapat dicapai dalam skrip batch atau VBScript ?
Saya telah mencoba perintah batch yang sangat dasar, tetapi ini mengharuskan pengguna untuk mengizinkan penghapusan setiap file. Ini bukan solusi yang cocok karena ada ratusan file dan ini akan meningkat secara besar-besaran dari waktu ke waktu.
Apa yang bisa Anda sarankan?
windows
script
powershell
batch-file
vbscript
BobJim
sumber
sumber
rd /s /q "c:\folder a
akan melakukan penghapusan rekursif pada semua file dan folder di dalamFolder A
Jawaban:
Ini dapat dicapai dengan menggunakan PowerShell :
Perintah ini
$path
memasukkan setiap item anak , mengeksekusi metode hapus pada masing -masing item , dan cukup cepat. Struktur folder dibiarkan utuh.Jika Anda mungkin memiliki file tanpa ekstensi, gunakan
sebagai gantinya.
Tampaknya
-File
parameter mungkin telah ditambahkan setelah PowerShell v2. Jika itu masalahnya, makaSeharusnya melakukan trik untuk file yang memiliki ekstensi.
Jika tidak berhasil, periksa apakah Anda memiliki versi terbaru Powershell
sumber
-Include *.*
tidak-Include .
, perbedaan besar! :-)-Include .
?? Itulah masalahnya.powershell --version
? Tidak bisakah mereka menggunakan nomor versi dengan angka positif? Ini gila. Lebih dari 1300 upvotes untuk pertanyaan tentang cara mengetahui nomor versi suatu program?PowerShell pendek dan sesuai kebutuhan. Tidak yakin apa versi PS yang paling rendah akan bekerja dengannya.
sumber
rm *
karena itu tidak benar-benar disarankan untuk dipaksakan (dialog konfirmasi memiliki opsi "Ya untuk Semua").Anda dapat melakukannya dengan
del
perintah:The
/S
switch untuk menghapus hanya file secara rekursif.sumber
/P
opsi sehingga akan meminta Anda untuk mengonfirmasi setiap penghapusan hanya untuk memeriksa itu.attrib -s -r -h Folder\*.* /s /d
sebelum menghapus. Dan untuk izin gunakantakeown
perintah.Membaca yang tersirat pada pertanyaan awal Anda, saya dapat menawarkan baris kode BATCH alternatif yang dapat Anda gunakan. Apa yang akan dilakukan ketika dijalankan hanya menghapus file yang sudah berusia lebih dari 60 hari. Dengan cara ini Anda dapat menempatkan ini dalam tugas yang dijadwalkan dan ketika itu berjalan menghapus file berlebih yang tidak Anda butuhkan daripada meniup seluruh direktori. Anda dapat mengubah 60 hingga 5 hari atau bahkan 1 hari jika Anda mau. Ini tidak menghapus folder.
sumber
Menggunakan PowerShell:
sumber
Gunakan PowerShell untuk Menghapus Satu File atau Folder. Sebelum menjalankan perintah Hapus di PowerShell, kami perlu memastikan Anda masuk ke server atau PC dengan akun yang memiliki akses penuh ke objek yang ingin Anda hapus.
Dengan Contoh: http://dotnet-helpers.com/powershell-demo/how-to-delete-a-folder-or-file-using-powershell/
Menggunakan PowerShell commnads untuk menghapus file
Perintah di atas akan mengeksekusi dan menghapus file "DummyfiletoDelete.txt" yang ada di dalam lokasi "C: \ dotnet-helpers".
Menggunakan PowerShell commnads untuk menghapus semua file
Menggunakan PowerShell commnads untuk menghapus semua file dan folder
-recurse
latihan dan menemukan lebih banyak file. The–recurse
parameter akan memungkinkan PowerShell untuk menghapus setiap item anak tanpa meminta izin. Selain itu, –force parameter dapat ditambahkan untuk menghapus file yang tersembunyi atau hanya-baca.Menggunakan perintah -Force untuk menghapus file dengan paksa
Menggunakan perintah PowerShell untuk menghapus semua file dengan paksa
sumber
Coba ini menggunakan PowerShell. Dalam contoh ini saya ingin menghapus semua file .class:
sumber
Di Windows Explorer pilih direktori root yang berisi semua file dan folder.
Pencarian untuk *
Sortir menurut Jenis (Semua folder akan berada di atas dan semua file yang tercantum di bawah)
Pilih semua file dan tekan Delete.
Ini akan menghapus semua file dan mempertahankan struktur direktori.
sumber
Hapus semua file dari direktori dan sub-direktori saat ini tetapi meninggalkan struktur folder.
(
/Q
) Switch untuk menanyakan pengguna apakah ia boleh menghapusPerhatian : cobalah tanpa
/Q
memastikan bahwa Anda tidak menghapus sesuatu yang berharga.sumber
Ini adalah cara termudah IMO
Buka PowerShell, arahkan ke direktori (
cd
), MAKA(Puf) semuanya hilang ...
Jika Anda ingin menghapus berdasarkan ekstensi tertentu
Semua jawaban lain tampaknya membuat ini lebih membingungkan daripada yang diperlukan.
sumber
sumber
Sebagai pelengkap jawaban di atas, sebenarnya tidak perlu menggunakan Get-Childitem dan meneruskan hasilnya ke pipeline dalam jawaban di atas, karena kata kunci -Include termasuk dalam perintah Remove-Item
Seseorang dapat dengan mudah:
Hapus-Item -Termasuk " . " "C: \ Temp" -Recurse
sumber