これにより、複数のフォルダー内の特定の拡張子を持つファイルを削除できます。
Get-childitem * -include *.scc -recurse | remove-item
ただし、特定の名前のフォルダー、特にSubversionリポジトリからファイルをプルダウンするときにSubversionが作成するフォルダー( ".svn"または "_svn")も削除する必要があります。
これ one それを行う必要があります:
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
}
}
-Include
よりも遅いのでGet-ChildItem
の-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