Windows批处理文件删除.svn文件和文件夹

时间:2010-03-28 11:42:39

标签: batch-file svn delete-file

为了删除“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")

但它也不起作用,他什么也没删除。

8 个答案:

答案 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文件,然后导入它。

enter image description here

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是文件夹名称