Saya membuat skrip batch dan bagian dari skrip mencoba untuk menghapus direktori dan semua sub-direktorinya. Saya mendapatkan pesan kesalahan intermiten tentang sub-direktori yang tidak kosong. Saya membaca satu artikel tentang pengindeksan sebagai pelakunya. Saya menonaktifkan WSearch tetapi akhirnya saya mendapatkan kesalahan lagi. Inilah perintahnya:
rmdir /S /Q "C:\<dir>\"
windows
batch-file
Kekacauan
sumber
sumber
Jawaban:
Saya mengalami masalah yang sama seperti yang dikatakan Harry Johnston.
rmdir /s /q
akan mengeluh bahwa direktori tidak kosong meskipun/s
dimaksudkan untuk melakukan pengosongan untuk Anda! Saya pikir itu bug di Windows, secara pribadi.Solusi saya adalah untuk
del
semua yang ada di direktori sebelum menghapus direktori itu sendiri:(The
1>nul
menyembunyikan output standardel
karena jika tidak, itu mencantumkan setiap file yang dihapusnya.)sumber
mydir
menghasilkan kesalahan "tidak kosong" yang sama. Jadi saya haruscd
masukmydir
dan menjalankandel
file di setiap direktori tersebut juga. Pada akhirnya itu berhasil, tetapi jika saya harus mengulangi proses itu untuk ketiga kalinya di sublevel lain, saya akan merasa sangat kalah.del /s
dilakukannya.rd /s /q mydir
perintah.Saya akrab dengan masalah ini. Solusi paling sederhana adalah mengulangi operasi secara bersyarat. Saya belum pernah melihatnya gagal dua kali berturut-turut - kecuali sebenarnya ada file terbuka atau masalah izin, jelas!
sumber
IF EXIST
menyembunyikanAccess is denied
dan situasi lainnya. Saya telah menambahkan sesuatu sepertiDIR c:\deleteme
dan pengecekan kesalahan sebelum semuanya.Saya baru saja mengalami masalah yang sama dan itu berkaitan dengan beberapa file yang hilang atau rusak. Untuk memperbaiki masalah ini, jalankan saja check disk:
Ini dapat dijalankan dari kotak jendela pencarian atau dari prompt cmd. The
/F
perbaikan masalah yang ditemukan, seperti memulihkan file. Setelah ini selesai dijalankan, Anda dapat menghapus file dan folder seperti biasa.sumber
masuk ke Command Prompt sebagai Admin dan jalankan
sumber
Saya memiliki masalah yang sama, mencoba menghapus folder kosong melalui windows explorer. Menunjukkan kepada saya kesalahan yang tidak kosong, jadi saya pikir saya mencobanya melalui admin cmd, tetapi tidak ada jawaban di sini yang membantu.
Setelah saya memindahkan file ke folder kosong. Saya dapat menghapus folder yang tidak kosong
sumber
Seperti yang @gfullam nyatakan dalam komentar untuk jawaban @ BoffinbraiN, yang
<dir>
Anda hapus sendiri mungkin bukan yang berisi file: mungkin ada subdirektori di dalamnya<dir>
yang mendapatkan pesan "Direktori tidak kosong" dan satu-satunya solusi adalah berulang-ulang di atas direktori, secara manual menghapus semua file yang memuatnya ... Saya akhirnya memutuskan untuk menggunakan portrm
dari UNIX.rm.exe
dilengkapi dengan Git Bash, MinGW, Cygwin, GnuWin32, dan lainnya. Anda hanya perlu memiliki direktori induknya di PATH Anda dan kemudian menjalankannya seperti yang Anda lakukan di sistem UNIX.Contoh skrip batch:
sumber
Apa yang berhasil bagi saya adalah sebagai berikut. Sepertinya perintah RMDir akan mengeluarkan "Direktori tidak kosong" hampir sepanjang waktu ...
sumber
Saya memiliki "C: \ Users \ User Name \ OneDrive \ Fonts", yang ditautkan (/ D) ke "C: \ Windows \ Fonts", dan saya mendapat masalah yang sama. Dalam kasus saya
membantuku. Saya harap, ini juga membantu Anda; D
sumber
Saya kasus saya, saya baru saja memindahkan folder ke direktori root seperti itu.
Dan kemudian jalankan perintah untuk menghapus direktori
sumber
rmdir c:\<moved directory> /s /q
adalah jawaban yang benarAlasan
rd /s
menolak untuk menghapus file tertentu kemungkinan besar karena atribut file READONLY pada file di direktori.Cara yang tepat untuk memperbaikinya adalah dengan memastikan Anda mengatur ulang atribut pada semua file terlebih dahulu:
Mungkin ada yang lain seperti file tersembunyi atau sistem, jadi jika Anda ingin bermain aman:
sumber
Mirip dengan jawaban Harry Johnston, saya berputar hingga berhasil.
sumber
Terkadang Windows "rusak karena desain", jadi Anda perlu membuat folder kosong, lalu mencerminkan "folder yang rusak" dengan "folder kosong" dengan mode cadangan.
Buat dir kosong seperti ini:
timpa folder yang rusak dengan yang kosong seperti ini:
lalu hapus folder itu
Jika ini tidak membantu, coba mulai ulang dalam "mode pemulihan dengan prompt perintah" dengan menahan shift saat mengklik mulai ulang dan mencoba menjalankan perintah ini lagi dalam mode pemulihan
sumber
/W:0
untuk menghindari penundaan yang tidak perlu. Anda mungkin tidak mau/b
karena itu membutuhkan hak akses administratif. Mode pemulihan tidak relevan dengan pertanyaan ini, karena kita berbicara tentang skrip batch, bukan seseorang yang mencoba menghapus direktori secara manual.Saya dapat memikirkan kemungkinan penyebab berikut:
Untuk 1.) Anda dapat mencoba
runas /user:Administrator
untuk mendapatkan hak istimewa yang lebih tinggi atau memulai file batch sebagai administrator melalui menu konteks. Jika itu tidak membantu, bahkan mungkin administrator tidak memiliki hak. Kemudian Anda perlu mengambil alih kepemilikan direktori.Untuk 2.) unduh Process Explorer , klik
Find/Find handle or DLL...
atau tekan Ctrl+F, ketik nama direktori dan cari tahu siapa yang menggunakannya. Tutup aplikasi yang menggunakan direktori, jika memungkinkan.sumber