Bir dosya sistemi yolundaki boş dizinleri yinelemeli olarak aramak ve silmek için bir PowerShell betiği kullanabilirsiniz.
Dosya sisteminde, ya yanlışlıkla oluşturuldukları ya da artık herhangi bir içerikleri olmadığı için her zaman boş dizinler vardır. Windows Gezgini, boş klasörleri aramak için yerleşik bir özelliğe sahip değildir. Bunun için Jones John’un “Boş Dizinleri Kaldır” gibi özel araçları vardır. Ancak bu görev için herhangi bir özel yazılım yüklemek istemiyorsanız aşağıdaki PowerShell betiğini kullanabilirsiniz. Belirtilen yoldaki tüm boş dosya sistemi klasörlerini kaldırır. Yol yinelemeli olarak aranır. parametre -Güç orada Get-Cilditem (takma ad: sana) gizli dosya ve klasörlerin bile tanınması ve yalnızca gizli öğeler içeriyorsa klasörlerin silinmemesi için kullanılır.
###########################################
# Löschen leerer Dateisystemordner in einem Pfad (rekursiv)
# (C) Dr. Holger Schwichtenberg, www.IT-Visions.de
###########################################
# veri girişi
$root = “t
roje arşivi”
$logfile = “c:tempBoş LOG.txt klasörlerini sil”
[int] $NumberofFoldersDeleted= 0
Remove-EmptyFolder($yol) işlevi
{
$list = dir -literalpath $yol -Dosya -Kuvvet
$dosya = $list.count
$alt dizinler = dir -literalpath $yol -Directory -Force
foreach($alt dizinlerde $alt dizin)
{
$file = $file + (Remove-EmptyFolder$subdir.fullname)
}
Yazma-ayrıntılı “$yol : $dosya”
eğer ($dosya -eq0)
{
write-host “==> Boş klasörü sil: $yol”
rd -literalpath$path -yineleme kuvveti
$script:NumberDeletedFolders++
Add-Content-Path $logfile-value $path
}
$dosyasını döndür
}
## Ana program
Write-Host “$root yolundaki boş klasörü arayın”
$subdirs = dir $root -Directory -Force
foreach($subdir in $subdirs)
{
Remove-EmptyFolder $subdir.fullname | out-null
}
Write-Host "$AnzGelöschteOrdner Ordner gelöscht!"
Silinen yollar bir günlük dosyasına kaydedilir. Bu, gerekirse dosya sistemi klasörlerini yeniden oluşturmak için daha sonra kullanılabilir. Aşağıdaki espri yeterli olacaktır.
Get-Content "t:Leere Ordner löschen.txt" | where { $_ -ne $null } | foreach { md $_ -ErrorAction SilentlyContinue }
parametre -ErrorAction açık olacak sessizce devam et ayarlayın, aksi takdirde, bir alt klasör oluşturulduğunda otomatik olarak oluşturulduğu için zaten bir üst düzey klasör varsa hata mesajları görüntülenecektir.
()
Haberin Sonu
Dosya sisteminde, ya yanlışlıkla oluşturuldukları ya da artık herhangi bir içerikleri olmadığı için her zaman boş dizinler vardır. Windows Gezgini, boş klasörleri aramak için yerleşik bir özelliğe sahip değildir. Bunun için Jones John’un “Boş Dizinleri Kaldır” gibi özel araçları vardır. Ancak bu görev için herhangi bir özel yazılım yüklemek istemiyorsanız aşağıdaki PowerShell betiğini kullanabilirsiniz. Belirtilen yoldaki tüm boş dosya sistemi klasörlerini kaldırır. Yol yinelemeli olarak aranır. parametre -Güç orada Get-Cilditem (takma ad: sana) gizli dosya ve klasörlerin bile tanınması ve yalnızca gizli öğeler içeriyorsa klasörlerin silinmemesi için kullanılır.
###########################################
# Löschen leerer Dateisystemordner in einem Pfad (rekursiv)
# (C) Dr. Holger Schwichtenberg, www.IT-Visions.de
###########################################
# veri girişi
$root = “t
$logfile = “c:tempBoş LOG.txt klasörlerini sil”
[int] $NumberofFoldersDeleted= 0
Remove-EmptyFolder($yol) işlevi
{
$list = dir -literalpath $yol -Dosya -Kuvvet
$dosya = $list.count
$alt dizinler = dir -literalpath $yol -Directory -Force
foreach($alt dizinlerde $alt dizin)
{
$file = $file + (Remove-EmptyFolder$subdir.fullname)
}
Yazma-ayrıntılı “$yol : $dosya”
eğer ($dosya -eq0)
{
write-host “==> Boş klasörü sil: $yol”
rd -literalpath$path -yineleme kuvveti
$script:NumberDeletedFolders++
Add-Content-Path $logfile-value $path
}
$dosyasını döndür
}
## Ana program
Write-Host “$root yolundaki boş klasörü arayın”
$subdirs = dir $root -Directory -Force
foreach($subdir in $subdirs)
{
Remove-EmptyFolder $subdir.fullname | out-null
}
Write-Host "$AnzGelöschteOrdner Ordner gelöscht!"
Silinen yollar bir günlük dosyasına kaydedilir. Bu, gerekirse dosya sistemi klasörlerini yeniden oluşturmak için daha sonra kullanılabilir. Aşağıdaki espri yeterli olacaktır.
Get-Content "t:Leere Ordner löschen.txt" | where { $_ -ne $null } | foreach { md $_ -ErrorAction SilentlyContinue }
parametre -ErrorAction açık olacak sessizce devam et ayarlayın, aksi takdirde, bir alt klasör oluşturulduğunda otomatik olarak oluşturulduğu için zaten bir üst düzey klasör varsa hata mesajları görüntülenecektir.
()
Haberin Sonu