Ton*_*one 24 directory powershell recursion windows-7
我可以删除多个文件夹中具有特定扩展名的文件:
Get-childitem * -include *.scc -recurse | remove-item
Run Code Online (Sandbox Code Playgroud)
但是我还需要删除具有特定名称的文件夹 - 特别是当你从subversion repo中下载文件时subversion创建的文件夹(".svn"或"_svn").
Len*_*rri 45
这一个应该这样做:
get-childitem -Include .svn -Recurse -force | Remove-Item -Force –Recurse
Run Code Online (Sandbox Code Playgroud)
其他版本:
$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
}
}
Run Code Online (Sandbox Code Playgroud)
lod*_*ykk 13
递归删除具有特定名称的文件夹 -Filter比-Include.
因此,为了可见性,这是 @Keith 答案的更快版本:
完全打印出来:
Get-ChildItem -Filter .svn -Recurse -Force | Remove-Item -Recurse -Force
Run Code Online (Sandbox Code Playgroud)
简洁版本:
ls . -filter .svn -r -fo | ri -r -fo
Run Code Online (Sandbox Code Playgroud)
我倾向于避免使用-Include参数,Get-ChildItem因为它比它慢-Filter.但是在这种情况下(因为它不能表示为a -Filter),这就是我要使用的:
Get-ChildItem . -Include .svn,_svn -Recurse -Force | Remove-Item -Recurse -Force
Run Code Online (Sandbox Code Playgroud)
或者如果在提示符下输入:
ls . -inc .svn,_svn -r -fo | ri -r -fo
Run Code Online (Sandbox Code Playgroud)