Windows'ta Boş Klasörleri Otomatik Olarak Kaldırma - Winhelponline

How Remove Empty Folders Automatically Windows Winhelponline

Zamanla yüzlerce boş klasör ve gereksiz dosya sabit diskinizi kaplayabilir. Önemsiz dosyalar disk alanı kaplarken ve kullanılarak temizlenebilir Disk temizleme veya Depolama ayarları boş dizinler kalır.



Boş klasörler disk alanı kaplamaz, ancak verilerinizi daha iyi organize etmek için arada bir budamak isteyebilirsiniz.



Bu makalede, bilgisayarınızdaki boş klasörleri bulup kaldırmanın farklı yöntemleri anlatılmaktadır.



İçindekiler

  1. 'Boş Dosyaları-n-Klasörleri Bul' seçeneğini kullanarak boş klasörleri kaldırın '
  2. Kullanarak boş klasörleri kaldırın İçin ve rd komutlar
  3. Robocopy kullanarak boş klasörleri kaldırın
  4. PowerShell kullanarak boş klasörleri kaldırın
  5. Windows Komut Dosyası kullanarak boş klasörleri kaldırın
  6. DelEmpty.exe kullanarak boş klasörleri kaldırın

Windows'ta Boş Klasörler Nasıl Bulunur ve Kaldırılır?

Boş bir klasör veya dizin, içinde dosya veya alt dizin bulunmayan dizindir. Boş klasörler herhangi bir disk alanı kaplamaz, ancak çok fazla klasör rahatsızlık yaratabilir. Bunları bulmak ve kaldırmak için aşağıdaki yöntemlerden birini kullanın.

Önemli: Tüm sistem sürücüsündeki boş klasörleri özyinelemeli olarak silmek için otomatik bir araç veya toplu iş dosyası çalıştırmak genellikle önerilmez. Bunun nedeni, bazı programların önemli bir klasörün eksik olduğunu fark ettiğinde çalışmayarak tuhaf bir hata verebilmesidir. Her zaman olduğu gibi, standart uyarı geçerlidir. Dosya sistemini veya Windows kayıt defterini değiştirmeden önce, tercihen harici bir sürücüde uygun yedeklemeleri yaptığınızdan emin olun.



İLİŞKİLİ: Windows'ta bir klasörde 0 baytlık dosyaları yinelemeli olarak bulun ve silin

Güzel bir GUI aracıyla başlayalım, ardından yerel komut satırı ve komut dosyası oluşturma yöntemleriyle devam edelim.

1. 'Boş Dosyaları-n-Klasörleri Bul' yardımcı programını kullanarak boş klasörleri kaldırın

Boş Dosyaları Bul-n-Klasörler, boş dosyaları (0 bayt) ve boş klasörleri bir klasör ağacının altında yinelemeli olarak bulup silebilen mükemmel bir araçtır.

  1. İndir Boş Dosyaları-n-Klasörleri Bul (600KB yükleyici) Ashisoft.com'dan.
  2. Klasörü seçin ve Şimdi Tara seçeneğine tıklayın.
    pencerelerde boş klasörleri kaldır
    Araç, boş dosya ve klasörleri ayrı sekmelerde listeleyecektir.
  3. Tıklayın Tüm Klasörleri işaretle ve sonra tıklayın Klasörleri Sil .
    pencerelerde boş klasörleri kaldır
    Benzer şekilde, isterseniz 0 baytlık dosyaları sil seçilen klasör ağacında, Dosyaları Boşalt sekmesi.

Ashisoft.com'da kontrol edebileceğiniz başka harika araçlar var!


2. 'for' ve 'rd' komutlarını kullanarak boş klasörleri kaldırın

Komut İstemi dahili komutlarını kullanabilirsiniz için ve rd klasör listesini numaralandırmak ve boş olanları silmek için.

  1. Shift tuşunu basılı tutun, bir klasöre sağ tıklayın ve Burada komut penceresini açın . Bu, mevcut klasör konumunda Komut İstemi'ni açar ve konsolda da doğrulanabilir. Not: Aşağıdaki komutu, boş alt klasörleri bulup kaldırmanız gereken tam üst klasör yolundan çalıştırdığınızdan emin olmalısınız.
  2. Komut İstemi'nde istediğiniz dizine girdikten sonra, şu komut satırını çalıştırın:
    / f 'delims =' için% i in ('dir / s / b / ad ^ | sort / r') rd '% i' 2> NUL (veya) / f 'usebackq delims ='% i in ( ''dir / s / b / ad | sırala / r'`) rd'% i '2> NUL yap

    for ve rd - batch komutunu kullanarak boş klasörleri kaldırın

    Bu, alt dizinlerdeki tüm boş dizinleri, iç içe geçmiş boş klasörler dahil olmak üzere temel klasör yolundan siler.

    Yukarıdaki komutu bir toplu iş dosyasında kullanacaksanız, %ben ile %%ben .

uyarı ikaz simgesiÖnemli: Yukarıdaki komut silinmeyecek yabancı karakter içeren klasörler - ör. 蜍 穂. Kontrol etmek isteyebilirsin DelEmpty.exe (bu makalede ele alınmıştır) veya Unicode karakterleri olan klasörleri silmek için diğer yöntemler.

Yukarıdaki komut satırı, blogu aracılığıyla Microsoft'tan Raymond Chen'in izniyle sağlanmıştır. Eski Yeni Şey . Bu yazıda, Raymond’ın komut satırı, boşluk (lar) içeren klasör adlarını da silecek şekilde biraz değiştirildi.

Komut nasıl çalışıyor

Yukarıdaki komut, geçerli temel yoldaki tüm alt dizinleri (özyinelemeli olarak) listeler ve listeyi sıralar ( sort / r ) ters sırada. Ters sıralı sıralama, numaralandırmanın aşağıdan yukarıya yapıldığından emin olmaktır. Üst dizini kaldırmadan önce alt dizinleri kaldırmanız gerektiğinden, bu, boş dizinleri silmek için önemlidir.

Ardından, dizinler listesini (ters sıralama düzeninde) kullanarak kaldırmaya çalışır. RD komut. Bir dizin boş değilse, sonraki dizine geçer ve bu böyle devam eder. 2> BOŞ komutu 'dizinin boş olmamasını' sağlar çıktı metni bastırılır.

Yukarıdaki yöntemin tek dezavantajı, boş klasörleri silmeden bulmak istemenizin yardımcı olmamasıdır. Boş klasörlerin listesini bulmak istiyorsanız, aşağıdaki paragraftaki komut satırını kullanın veya bu makalede açıklanan diğer herhangi bir yöntemi uygulayın.

Boş klasörleri bulun ama silmeyin

Yalnızca boş klasörleri silmeden bulmak için şu komut satırı sözdizimini kullanın:

/ r 'D:  uploads  2019' / d% F için (.) do @dir / b '% F' | findstr '^'> nul || echo% ~ fF

Size boş dizinlerin listesini içeren çıktıyı gösterir.

boş klasörlerin listesi - komut satırı

Diyelim ki şuna benzer boş iç içe klasörleriniz var:

C:  1 └───2 └───3 └───4

Yukarıdaki komutu çalıştırmak sadece en derin boş klasörü listeler → 4 . Teknik olarak bu doğrudur, çünkü bir alt klasör veya içinde bir dosya varsa bir klasör boş kabul edilemez.


3. Robocopy kullanarak boş klasörleri bulun ve kaldırın

Robocopy, birçok gelişmiş özelliğe sahip güçlü bir yerleşik dosya kopyalama aracıdır. Makalede Robocopy'yi ele aldık Windows'ta İki Klasörün İçeriğini Karşılaştırın .

Adında bir klasörünüz olduğunu varsayalım arabalar , bazıları boş olan birkaç alt klasör içeren. Robocopy kullanarak boş olanları sileceğiz.

el noktası simgesi hile burada Robocopy taşıma komutunu kullanmak, hem 'kaynak' hem de 'hedef' için tam olarak aynı klasör yolunu iletmektir.

  1. Bir Komut İstemi penceresi açın.
  2. Aşağıdaki komutu yazın ve ENTER tuşuna basın:
    robocopy 'd:  otomobil fiyatları  arabalar' 'd:  otomobil fiyatları  arabalar' / S / hareket

    en önemli Burada dikkat edilmesi gereken şey şudur: kaynak ve hedef yollar (kasıtlı olarak) aynıdır. / S parametresi, Robocopy'ye boş klasörleri 'hedef' yola taşımama talimatını verir. Kaynak ve hedef için aynı yollardan bahsettiğimiz gibi, Robocopy, / S değiştirmek.

    robocopy boş klasörleri kaldır

Seçilen yoldaki boş klasörler artık temizlendi.

Boş klasörler bulup silmek istemiyor musunuz?

Kullanabilirsiniz / L Robocopy ile (yalnızca liste) komut satırı argümanı, böylece gerçek kopyalama / taşıma işlemini gerçekleştirmek yerine yalnızca bir kuru çalıştırma gerçekleştirir.

/ L :: Yalnızca liste - herhangi bir dosyayı kopyalamayın, zaman damgası vermeyin veya silmeyin.
/HAREKET :: MOVE files AND dizin (kopyaladıktan sonra kaynaktan silin).
/ S :: Alt dizinleri kopyala, ancak boş olanları değil.

robocopy boş klasörleri sil - liste -dryrun

Klasör yolunu duyan bir sütundaki dosya sayısını görebilirsiniz. 0 s, bu klasörlerde dosya olmadığı anlamına gelir.

Bu komutu gerçek bir teste tabi tutalım!

Benim %UYGULAMA VERİSİ% klasör, eski programlar tarafından eklenen boş klasörlerle dolu.

appdata dolaşım klasörü içeriği

Temizlemeden önce, Uygulama veri dolaşımı klasör özelliklerinde görüldüğü gibi, klasör 681 klasör içeriyordu.
boş klasörleri kaldır - önce

Komut İstemi'ni açtım ve aşağıdaki komutu çalıştırdım:

robocopy '% appdata%' '% appdata%' / S / HAREKET

Not:% appdata% ortam değişkeni şu anlama gelir: C: Kullanıcılar {kullanıcı adı} AppData Dolaşım Klasör. Robocopy ile tam klasör yolunu veya eşdeğer ortam değişkenini kullanabilirsiniz. İkisi de iyi.

robocopy boş klasörleri kaldır - appdata dolaşımı

Başarıyla kaldırıldı 94 bende boş klasörler %UYGULAMA VERİSİ% klasör ve alt klasörler.

boş klasörleri kaldırın - sonra

Editörün Notu: İstatistik bölümünün altındaki komut satırı çıktısında aşağıdaki hata görüntülendi:

'ERROR 32 (0x00000020) Kaynak Dizini Siliniyor C: Users ramesh AppData Roaming
İşlem, başka bir işlem tarafından kullanıldığı için dosyaya erişemiyor. '

robocopy boş klasörleri kaldır - hata

Çünkü Robocopy'ye taşınması talimatını verdik ( /HAREKET )% APPDATA% dizininde, araç hedefe 'taşıdıktan' sonra 'kaynak' klasörü temizlemeye çalışıyordu. Yapamadı, çünkü% APPDATA% özel bir klasör. Özel bir klasör olmayan bir dizin yolu kullanıldığında hata oluşmaz. Her şey yolunda gittiği için, (önemsiz) hatayı basitçe görmezden geldim.


4. PowerShell'i kullanarak boş klasörleri bulun ve kaldırın

Aşağıdaki PowerShell komut satırı, belirtilen temel klasörün altındaki boş klasörleri özyinelemeli olarak siler.

  1. PowerShell'i başlatın ve aşağıdaki komutu yazın:
    (gci 'klasör yolu' -r |? {$ _. PSIsContainer -eq $ True}) | ? {$ _. GetFileSystemInfos (). Sayım -eq 0} | öğeyi kaldırmak

    'Klasör yolu' nu temel klasör konumu ile değiştirin. Örneğin, şunu belirtiyorum: Dolaşım klasör buraya:

    (gci 'C:  Users  ramesh  AppData  Roaming' -r |? {$ _. PSIsContainer -eq $ True}) | ? {$ _. GetFileSystemInfos (). Sayım -eq 0} | öğeyi kaldırmak

    powershell boş klasörleri özyinelemeli olarak kaldırır

    Bu, benim altındaki tüm boş alt klasörleri siler. %uygulama verisi% klasörü yinelemeli ve herhangi bir hata (lar) ile karşılaşmadığı sürece herhangi bir çıktı göstermez.

Yukarıdaki PowerShell komutunun yalnızca boş iç içe klasörün son düzeyini temizlediğini unutmayın. Örneğin, şuna benzer boş iç içe klasörleriniz olduğunu varsayalım:

C:  1 └───2 └───3 └───4

Yukarıdaki komutu çalıştırmak en derin boş klasörü temizler → 4 . Komut dosyasını yeniden çalıştırmak, yuvalanmış bir klasörün başka bir düzeyini temizler ( 3 ) vb.

PowerShell betiğini şurada kullanabilirsiniz: Svendsen Tech PowerShell Wiki iç içe klasörlerle çalışmak için.

Alternatif olarak, bir sonraki yöntemi de kullanabilirsiniz: Windows Komut Dosyası çözüm, iç içe geçmiş olanlar dahil tüm boş klasörleri özyinelemeli olarak temizlemek için.

Boş klasörler buldunuz ancak onları silmek istemiyor musunuz?

Boş klasörlerin listesini almak istiyor, ancak onları silmek istemiyor musunuz? Bunun yerine şu komut satırı örneğini kullanın:

(gci 'C:  Users  ramesh  AppData  Roaming' -r |? {$ _. PSIsContainer -eq $ True}) | ? {$ _. GetFileSystemInfos (). Sayım -eq 0} | Tam Ad'ı seçin | Out-GridView

powershell boş klasörleri özyinelemeli olarak kaldırır

Komut, bir ızgara görünümü kontrolüne giden tam yolları olan boş klasörlerin listesini çıkarır.

powershell boş klasörler listesi çıktı ızgara görünümü bul

İpucu: Izgara görünümünde, Ctrl + C tuşlarına basarak tümünü seçebilir ve seçimi kopyalayabilirsiniz.

Klasörleri silme komutunu çalıştırmadan önce listeyi önizlemek iyi bir fikirdir.


5. Windows Komut Dosyası kullanarak boş klasörleri bulun ve kaldırın

Microsoft çalışanı Jeremy Jameson boş klasörleri tekrar tekrar silen bir VBScript yazdı. Boş salt okunur dizinleri silmeye zorlamak için komut dosyasına daha fazla satır ekledim, boş klasörlerin toplu listesini çıkardım. Ayrıca, silinemeyen boş klasörlerin listesini ilgili hata tanımıyla birlikte çıkarır.

Komut dosyası, alt klasörler arasında yuvalanmış boş dizinleri silebilir.

 'Windows'ta boş klasörleri yinelemeli olarak siler' https://www.winhelponline.com/blog/find-and-delete-empty-folders-windows/ Option Explicit If (WScript.Arguments.Count 1) Then WScript.Echo ('Usage : cscript DeleteEmptyFolders.vbs {yol} ') WScript.Quit (1) End If Dim strPath: strPath = WScript.Arguments (0) Dim fso: Set fso = CreateObject (' Scripting.FileSystemObject ') Dim objFolder: Set objFolder = fso .GetFolder (strPath) Dim sDelList, sDelErr, sFolderPath Dim iCnt iCnt = 0 DeleteEmptyFolders objFolder Sub DeleteEmptyFolders (klasör) Dim subfolder On Error Resume Next 'Kavşaklara erişirken hataları atla vb. 0 If folder.SubFolders.Count = 0 Ve klasör.Files.Count = 0 Sonra sFolderPath = klasör.Yol Hatada Devam Etme Sonraki fso.DeleteFolder klasörü.Yol, Doğru ise Err.number 0 Sonra sDelErr = sDelErr & Err.number & ' : '& Err.description & _ vbCrLf & sFolderPath & vbCrLf & vbCrLf Else sDelList = sDelList & vbCrLf & sFolderPath iCnt = iCnt + 1 Hata Olursa Bitir 0 End If End Sub End If sDelList = '' Ve sDelErr = '' Sonra WScript.Echo '' & _ '' '' & strPath & '' '' & 'ağaç' WScript.Quit End If sDelList '' sonra sDelList = 'Silinen boş klasörlerin listesi' & vbCrLf _ & String (38, '-') & vbCrLf & sDelList & vbCrLf & _ vbCrLf & 'Toplam: '& iCnt &' klasörler silindi. ' SDelErr '' ise sDelErr = 'Bu klasörler silinemedi' & _ vbCrLf & String (45, '-') & vbCrLf & sDelErr WScript.Echo sDelList & vbCrLf & vbCrLf & sDelErr 

İsteğe bağlı olarak, komut dosyasını buna göre yeniden adlandırabilirsiniz, diyelim ki delempty.vbs ve onu taşıyın C: Windows Klasör.

Komut dosyasını iki şekilde çalıştırabilirsiniz:

Komut İstemi aracılığıyla, şunu çalıştırarak:

cscript.exe delempty.vbs 'klasör_yolu'

boş klasörleri bul ve kaldır

GUI aracılığıyla, çalıştırarak:

wscript.exe delempty.vbs 'klasör_yolu'

Gönder menüsü aracılığıyla

Komut dosyası için bir kısayol oluşturabilirsiniz. SendTo klasörünüz ve ona isim ver Boş Klasörleri Silin .

boş klasörleri kaldır

Ardından, boş alt klasörleri tekrar tekrar silmek istediğiniz klasöre sağ tıklayın → Gönderildi → tıklayın Boş Klasörleri Silin Gönder menüsünde.

Silinen boş klasörlerin listesini ve toplamı ve ilgili hata kodlarıyla birlikte silinemeyen klasörleri göreceksiniz.

boş klasörleri bulma ve silme - vbscript


6. DelEmpty.exe kullanarak boş klasörleri bulun ve kaldırın

DelEmpty.exe IntelliAdmin'in boş dizinleri yinelemeli olarak silebilen bir konsol aracıdır. Bu program aynı zamanda boş olanları da hızlı bir şekilde silebilir. 0 baytlık dosyalar tekrarlı.

Aşağıda programın komut satırı sözdizimi verilmiştir:

DelEmpty.exe SEÇENEKLERİ [YOL]
Argüman Açıklama
-f Boş (0 bayt) dosyaları silin
-d Boş dizinleri silin
-v Ayrıntılı mod
-c Onay modu (Neyin silindiğini gösterir)
-s Alt dizinleri dahil et (alt klasörleri geç)
-l Nelerin silineceğini listeleyin ( silinmeyecek )
-ve (Y / n) istemi olmadan sil

Örnek 1: İçin liste AppData altındaki Mozilla dizini altındaki boş klasörler için aşağıdaki komut satırını kullandım:

DelEmpty.exe '% AppData%  Mozilla' -d -c -s -y -l

Yukarıdaki komut, boş klasörlerin listesini gösterir, ancak bunları -l ( sadece liste ) anahtarı kullanılır.

Boşluk (lar) içeren klasör adları için - ör. Mozilla Firefox yolun etrafına çift tırnak işareti eklediğinizden emin olun.

Örnek 2: İçin sil altındaki boş klasörler Mozilla dizini altında %Uygulama verisi% , Aynı komut satırını çalıştırıyorum ancak -l değiştirmek:

DelEmpty.exe '% AppData%  Mozilla' -d -c -s -y

boş dizinleri tekrar tekrar sil

Program her alt klasörden geçer ve boş klasörleri siler. İç içe geçmiş boş klasörler de kaldırılır. Örneğin, bu yapıdan boş dizinleri kaldırmak istiyorsanız:

C:  Folder1  Folder2  EmptyFolder1 C:  Folder1  Folder2  EmptyFolder2

Sonra EmptyFolder1 ve EmptyFolder2 klasörler kaldırılır, Klasör 2 de boştur - ve ayrıca kaldırılır. Ayrıca, DelEmpty.exe unicode / yabancı karakterlere sahip klasörleri de kaldırabilir - örneğin, 蜍 穂

Windows'ta boş klasörleri kaldırmak için başka yöntemler biliyorsanız, bunu aşağıdaki yorumlar bölümünde öğrenelim.


Küçük bir istek: Bu gönderiyi beğendiyseniz, lütfen paylaşın?

Sizden 'küçük' bir paylaşım, bu blogun büyümesine ciddi şekilde yardımcı olacaktır. Bazı harika öneriler:
  • İğnele!
  • En sevdiğiniz blog + Facebook, Reddit ile paylaşın
  • Cıvılda!
Desteğiniz için çok teşekkür ederim okuyucum. Zamanınızın 10 saniyesinden fazlasını almayacaktır. Paylaşma düğmeleri hemen aşağıda. :)