İçinde başka klasörler ve dosyalar içeren bir klasörü silmem gerekiyor. Denedim del
ve rmdir
komut 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 del
ve rmdir
komut 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 rmdir
komut, 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 rmdir
onun 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 rmdir
komutları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 ping
olduğ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
pause
komutlara sahip değildir ).
Deneyin:
rmdir /S your_directory
veya:
rmdir /S /Q your_directory
onay mesajlarını atlamak için
del
ve rmdir
hiçbir şey sormadım, sadece açıklamadaki gibi bazı satırlar gönderdiler.
rmdir /s
Silmek 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 del
içindeki dosyaları kullanın rmdir
.
rmdir
Tü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 DELTREE
eşdeğerdir . Kullandığım sadece iyi olsa toplu dosyalarında benim Windows 7 iş istasyonu üzerinde.RM
RMDIR
DELTREE
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)"