有没有办法从目录树的所有级别中删除名为 .svn 的所有子目录,而不触及其他任何内容?rd/s 和 del/s 似乎没有这样做。
答案1
for /r /d %i in (.svn) do rd /s /q "%i"
在批处理文件中使用%%i
而不是%i
,并确保当前目录位于要从中开始的层次结构的顶部。
编辑:刚刚注意到这也会捕获文件夹结尾,而不.svn
只是那些被点名的人.svn
。
答案2
将以下内容添加到批处理文件中。请先备份文件。
@for /f "tokens=*" %%a in ('dir /s /b /ad *.svn 2^>NUL') do rd /s /q "%%a"
答案3
如果你的硬盘是 NTFS,你可以使用免费的一切搜索引擎。
安装后,右键单击目录并选择“搜索所有内容...”。
然后键入 *.svn 以查看所有此类命名的文件和子目录。
单击列表中的第一个,然后键入 ctrl-A 选择整个列表,然后键入 Del 将其全部删除。
答案4
您可以运行 powershell one liner:
dir "PATH" -rec|?{($_.psiscontainer)-and($_.name-eq'.svn')}|rm -fo