1
我有以下腳本,我寫了一個非常大的目錄中有很多子目錄的遠程所有空文件夾。當我在測試環境中使用它時,又名C:\ Test包含空的文件夾,其中一些只有文件,一些只包含文件夾,一些包含文件和文件夾,在那裏它可以很好地工作。但是,當我在大目錄上使用它時,它仍然問我是否要刪除一些帶有子項目的文件夾。我希望它刪除空文件夾並忽略包含子項目的文件夾。我在這裏做錯了什麼想法?使用Powershell刪除空文件夾
function removeEmptyItems($inst)
{
$testInst = (($inst.FullName) + '\' + "*")
if(($inst.PSIsContainer) -eq $true)
{
if((Get-Item -Path ($testInst) -ErrorAction SilentlyContinue -Force) -eq $null)
{
Remove-Item -LiteralPath ($inst.FullName) -Force
}
}
}
# Change The Value For Set-Location To Wherever You Want To Trim
Set-Location "\\server\folder\subfolder"
Get-ChildItem -ErrorAction SilentlyContinue -Recurse |
%{ foreach ($inst in $_) { removeEmptyItems ($inst) } }
謝謝你的任何幫助我能,
附:如果你不想幫助並且覺得自己喜歡低調投票,不要評論並告訴我爲什麼你這樣想,這樣我就可以變得更好,我的問題可以得到解決。謝謝。
我試了一下,但如果跑了幾分鐘,沒有找到任何東西。我嘗試換掉Select-Full的Remove-Item live,但是沒有找到任何東西。看看代碼它看起來應該工作,但它找不到任何東西。我確實手動查看並確認有空的子目錄。 – CalebB 2014-11-06 21:53:12
此方法應刪除_any_子目錄中沒有文件的文件夾。您希望刪除的文件夾是否在其任何子目錄中都有_any_文件? – Matt 2014-11-06 22:02:45
@Matt是的主目錄有很多包含文件的子目錄。主目錄有超過200,000個子項目。我檢查了一下,以確保沒有任何文件路徑超過了260個.NET文件路徑名的限制,並且它全部設置在我正在運行的位置。我只是希望它通過主目錄的子項並刪除任何地方的空文件夾在樹上。 – CalebB 2014-11-07 14:28:22