簡體   English   中英

如何使用 PowerShell 遞歸刪除具有特定名稱的文件夾?

[英]How can I recursively delete folder with a specific name with PowerShell?

我可以使用以下命令刪除多個文件夾中具有特定擴展名的文件:

Get-childitem * -include *.scc -recurse | remove-item

但我還需要刪除具有特定名稱的文件夾 - 特別是當您從 subversion 存儲庫中提取文件時 subversion 創建的文件夾(“.svn”或“_svn”)。

一個應該這樣做:

get-childitem -Include .svn -Recurse -force | Remove-Item -Force -Recurse

其他版本:

$fso = New-Object -com "Scripting.FileSystemObject"
$folder = $fso.GetFolder("C:\Test\")

foreach ($subfolder in $folder.SubFolders)
{
    If ($subfolder.Name -like "*.svn")
    {
        remove-item $subfolder.Path -Verbose
    }       
}

我傾向於避免在Get-ChildItem上使用-Include參數,因為它比-Filter慢。 但是在這種情況下(因為它不能表示為-Filter ),這就是我將使用的:

Get-ChildItem . -Include .svn,_svn -Recurse -Force | Remove-Item -Recurse -Force

或者如果在提示符下輸入:

ls . -inc .svn,_svn -r -fo | ri -r -fo

遞歸刪除具有特定名稱的文件夾-Filter-Include快得多。

因此,為了可見性,這是​​@Keith 答案的更快版本:

完全打字:

Get-ChildItem -Filter .svn -Recurse -Force | Remove-Item -Recurse -Force

簡短版本:

ls . -filter .svn -r -fo | ri -r -fo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM