İçinde başka klasörler ve dosyalar içeren bir klasörü silmem gerekiyor. Denedim delve rmdirkomut verdim ama bazen bazı hata satırlarında başarısız oluyorlar:[PATH]: The directory isn't empty.
İyi bir alternatif var mı?
İçinde başka klasörler ve dosyalar içeren bir klasörü silmem gerekiyor. Denedim delve rmdirkomut verdim ama bazen bazı hata satırlarında başarısız oluyorlar:[PATH]: The directory isn't empty.
İyi bir alternatif var mı?
Yanıtlar:
Bu benim otomatik derleme komut dosyaları ile bana çok olur.
Sanırım sebebi o dizinde "share delete" yazan bir dosya açık olan bir uygulama olabilir. Diğer bir deyişle, uygulama dosyanın silinmesine izin verir (bu nedenle DeleteFile çağrısının başarısız olmadığını anlıyorum), ancak dosya yalnızca söz konusu uygulama işleci kapandıktan sonra kaybolacaktır.
Bu rmdirkomut, klasörü silmeye çalıştığında dosyanın hala orada olabileceği anlamına gelir , bu nedenle hata mesajı. Kısa bir süre sonra, söz konusu uygulama tutamağını kapatacak, dosya kaybolacak ve hangi dosyanın rmdironun hakkında konuştuğunu görmek için klasörü incelediğinizde boş kalacaktır.
En azından benim teorim.
Harry Johnston tarafından önerilen geçici çözüm iyi görünüyor. Sadece rmdirkomutların arasına bir duraklama eklerdim. Elbette, Windows kolayca komut dosyası "duraklat" komutuna sahip değildir (düzeltme: eski Windows sürümleri yoktur, daha yeni olan - yorumları görün). Ancak saniye ayrıntı düzeyi yeterli pingolduğunda duraklama oluşturmak için kullanabilirsiniz :
ping -n {desired_delay_in_seconds + 1} 127.0.0.1 >nul
Yani toplamda:
rd /s /q foo
:: retry once
if exist foo (
:: clear errorlevel
cmd /c
:: pause
ping -n 2 127.0.0.1 >nul
:: retry
rd /s /q foo
)
:: retry yet again
if exist foo (
cmd /c
ping -n 2 127.0.0.1 >nul
rd /s /q foo
)
:: give up
if exist foo {panic}
rm -rf /directory/tüm işletim sistemlerinde küresel olmalıdır.
timeout /t 3
pausekomutlara sahip değildir ).
Deneyin:
rmdir /S your_directory
veya:
rmdir /S /Q your_directory
onay mesajlarını atlamak için
delve rmdirhiçbir şey sormadım, sadece açıklamadaki gibi bazı satırlar gönderdiler.
rmdir /sSilmek mümkün olan her şeyi siler. Bir program tarafından kilitlenmiş dosyalara, salt okunur dosyalara veya silmek için yönetici erişimine ihtiyacınız olan dosyalara sahip olabilirsiniz. Sizin için tüm bu durumlarla ilgilenecek tek bir emir yoktur
Salt okunur dosyalarınız olabilir, bunlardan kurtulmak için del / F seçeneğini kullanabilirsiniz.
del /S /F your_directory
rmdir your_directory
Ayrıca bazı gizli dosyalarınız olabilir ve onları silmek istediğinizden eminseniz, o zaman bunu kullanarak yapabilirsiniz.
del /S /F /AH your_directory
rmdir your_directory
Bu hala başarısız olursa, o zaman bazı dosyaları silme izniniz yoktur veya bazı dosyalar hala kullanımdadır.
Windows 7'de (ve belki de diğer sürümlerde) bazen bu belirtiye neden olan bir hata olduğuna inanıyorum; veya üçüncü taraf yazılımlarda bir hata olabilir. (Symantec Endpoint Protection, herhangi bir şansınız varsa kurmuş mu?)
Her neyse, oldukça sık rastladım. Çoğu durumda, sorun rd /s /qüst üste iki veya üç kez çalıştırılarak çözülebilir .
Bu bir toplu iş dosyasında ise, böyle bir şey yapabilirsiniz:
rd /s /q foo
if exist foo rd /s /q foo
if exist foo rd /s /q foo
if exist foo echo Help! & pause
Klasörü kaldırmak için deliçindeki dosyaları kullanın rmdir.
rmdirTüm dosyaları da kaldırmak için bu yöntemi kullanmak için , dizin adından önce/S düğmeyi kullanın ve silmenin istenmesini önleyin. Bunu yapmanın en iyi yoludur, çünkü herhangi bir dosyayı kaçırmazsınız. / Q anahtarını kullanırken dikkatli olun, çünkü sizi Sistem veya Gizli dosya özniteliklerine karşı uyarmaz/Q
Klasörün eski Windows sürümleri (DOS, Windows 95/98 / ME), ya da DELTREEeşdeğerdir . Kullandığım sadece iyi olsa toplu dosyalarında benim Windows 7 iş istasyonu üzerinde.RMRMDIRDELTREE
Deletes a directory and all the subdirectories and files in it.
To delete one or more files and directories:
DELTREE [/Y] [drive:]path [[drive:]path[...]]
/Y Suppresses prompting to confirm you want to delete
the subdirectory.
[drive:]path Specifies the name of the directory you want to delete.
Note: Use DELTREE cautiously. Every file and subdirectory within the
specified directory will be deleted.
Sanırım bu şekilde kullanabilirsiniz:
msg*your file is going to delete
pause
del/s /q "C:\Users\Rd\Desktop\New folder (2)\"
rmdir /s /q "C:\Users\Rd\Desktop\New folder (2)\"
mkdir "C:\Users\Rd\Desktop\New folder (2)"