为了删除“myfolder”中的所有“.svn”文件/文件夹/子文件夹,我在批处理文件中使用这个简单的行:
FOR /R myfolder %%X IN (.svn) DO (RD /S /Q "%%X")
这样可行,但如果没有“.svn”文件/文件夹,批处理文件会显示一条警告:“系统找不到指定的文件。” 这个警告非常嘈杂,所以我想知道如何让它明白,如果它找不到任何“.svn”文件/文件夹,他必须跳过RD命令。
通常使用通配符就足够了,但在这种情况下我不知道如何使用它们,因为我不想删除扩展名为.svn的文件/文件夹,但我想要删除名为“.svn”的文件/文件夹,如果我这样做:
FOR /R myfolder %%X IN (*.svn) DO (RD /S /Q "%%X")
它不会删除名为“.svn”的文件/文件夹了。 我也尝试了这个:
FOR /R myfolder %%X IN (.sv*) DO (RD /S /Q "%%X")
但它也不起作用,他什么也没删除。
答案 0 :(得分:41)
你可以尝试
FOR /R myfolder %%X IN (.svn) DO (RD /S /Q "%%X" 2>nul)
答案 1 :(得分:4)
for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *svn') do (rd /s /q "%%i")
答案 2 :(得分:1)
使用find的那些东西:
rm -rf `find . -name ".svn" -type d`
编辑:
我知道这是针对linux的(我读的是bash而不是批处理)。我将它留在这里以帮助那些随机终结的Linux用户:)
答案 3 :(得分:1)
实际上,这个答案来自JesperRønn-Jensen
http://justaddwater.dk/2011/03/01/easy-delete-all-svn-subfolders-in-windows-explorer/
我认为我要分享这么容易。我正在将几个项目从.SVN转换为.GIT,所以这很棒。它向Explorer添加一个菜单项,以便您删除文件夹。创建一个.reg文件,然后导入它。
Windows Registry Editor Version 5.00
;
; Running this file will give you an extra context menu item in Windows Explorer
; "Delete SVN folders"
;
; For the selected folder, it will remove all subfolders named ".svn" and their content
; Tip from http://www.iamatechie.com/remove-all-svn-folders-in-windows-xp-vista/
;
; Enrichened with comments by Jesper Rønn-Jensen ( http://justaddwater.dk/ )
;
;
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""
答案 4 :(得分:0)
奇怪的旁注:如果我使用
FOR /R . %%X IN (*.svn) DO (echo "%%X")
而不是
FOR /R myfolder %%X IN (.svn) DO (RD /S /Q "%%X")
它不仅列出了以.svn结尾的所有目录,还列出了所有其他内容。这是For命令中的一个BUG,它给了我一个扩展,我没有给它任何外卡。很奇怪。
肯
答案 5 :(得分:0)
如果要删除Windows中名为 .svn 的所有子文件夹 然后使用以下内容创建批处理文件:
for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do (
rd /s /q "%%i"
)
将其保存在 del_All_Dot_SVN_Folders.cmd 文件中。运行。你做完了。
感谢http://www.axelscript.com/2008/03/11/delete-all-svn-files-in-windows/
请记住,上面的代码有.svn,而链接中的代码只有* svn,所以它更好 让.svn不会意外地产生不良影响。
答案 6 :(得分:-1)
这是我的最爱,简单而紧凑:
find ./ -name ".svn" | xargs rm -Rf
Fissh
答案 7 :(得分:-2)
删除Windows上的所有svn文件
for /d /r . %d in (.svn) do @if exist "%d" rd /s/q "%d"
.svn是文件夹名称