当前位置:  开发笔记 > 前端 > 正文

命令行工具在Windows中以递归方式删除具有指定名称的文件夹?

如何解决《命令行工具在Windows中以递归方式删除具有指定名称的文件夹?》经验,为你挑选了5个好方法。

我想删除每个文件夹和子文件夹中的每个"_svn"...

例如

c:\
  proyect1
   _svn
   images
     _svn
     banner
       _svn
     buttons
       _svn

然后我运行类似的东西

rm-recurse c:\proyect1 _svn

我应该得到:

c:\
  proyect1
   images
     banner
     buttons

理想的事情是一个小小的独立EXE或类似的东西.

- 感谢Grant,我一发布问题就看到SVN导出命令的SVN文档,但我也想删除Visual Studio创建的_vti_*文件夹,所以我也会探索for解决方案.



1> JMD..:

类似于BlackTigerX的"for",我打算建议

for /d /r . %d in (_svn) do @if exist "%d" rd /s/q "%d"


@DavidKEgghead,只需替换'.' (当前目录)包含您要搜索的目录.如果目标包含空格,请务必将其包装在引号中.因此,您将使用:`for/d/r"D:\ Projects"%d in(_svn)do @if exists"%d"rd/s/q"%d"`我经常通过替换实际来测试这些首先使用回声'工作':`for/d/r"D:\ Projects"%d in(_svn)do @if exists"%d"echo"%d"`这样我就可以看到我是什么东西了会影响.
如果要将其保存到bat文件,请不要忘记将%替换为%%.
是的,因为这个"for"的本质是它在每个目录条目中添加"_svn",因为它会递归目录树.
当我以递归方式运行时,有时候我会得到"-directory-is-not-empty"为什么会这样?这背后的原因是什么?

2> Cédric Rup..:

是时候学习一些PowerShell了 ; o)

Get-ChildItem -path c:\projet -Include '_svn' -Recurse -force | Remove-Item -force -Recurse

第一部分递归地查找每个_svn文件夹.Force用于查找隐藏文件夹.第二部分用于删除这些文件夹及其内容.删除命令行开关附带一个方便的"whatif"参数,可以预览将要执行的操作.

PowerShell适用于Windows XP和Windows Vista.它默认存在于Windows 7和Windows Server 2008 R2上.

这是一个MS产品,它是免费的,它摇滚!



3> 小智..:

对于BATCH文件中的包含/调用(比如删除Debug和Release文件夹):

for /d /r . %%d in (Debug Release) do @if exist "%%d" echo "%%d" && rd /s/q "%%d"

%批处理文件中需要double 才能用作转义字符.否则它会报告语法错误.

谢谢.



4> BlackTigerX..:
for /f "usebackq" %d in (`"dir _svn /ad/b/s"`) do rd /s/q "%d"

http://ebersys.blogspot.com/2008/07/recursively-delete-svn-folders-easy-way.html



5> Grant..:

在Windows中?如果您使用的是tortoiseSVN,则可以使用export命令导出没有.svn/_svn文件夹的项目副本.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有