删除除一个目录以外的所有文件和目录

我想使用Windows命令行删除除了一个文件夹“.svn”以外的所有文件和目录。 我尝试这样做,在两个步骤(我的工作目录是我要清理的文件夹):

  1. 首先删除除“.svn”之外的所有目录: dir /B /A:D | findstr /V ".svn" | rmdir /Q dir /B /A:D | findstr /V ".svn" | rmdir /Q
  2. 删除所有文件: del * /F /Q

步骤2是好的,但是对于步骤1,我得到一个“该命令的语法不正确”。 错误。 由rmdir cmd引发。 有没有人知道如何做到这一点确定:删除除一个以外的所有目录。

 for /f "tokens=*" %i in ('dir /B /A:D') do if ["%i"] neq [".svn"] rd "%i" /f /q 

说明

for循环列举了dir-command的输出。 如果目录名中有间隔,则必须指定tokens = *。

围绕if参数的方括号和双引号是一个古老的技巧,如果参数没有任何东西(或空白)或包含空白

如果你想把它放在一个cmd文件中,不要忘了把%-signs加倍