2012-03-15 146 views
3

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

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

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

+1

http://stackoverflow.com/questions/3008567/windows-batch-script-to-delete-everything-in-a-folder-except-one – Flot2011 2012-03-15 10:44:03

+0

http:///stackoverflow.com/questions/8281289/dir-list-all-folders-except-some – Aacini 2012-03-16 15:03:08

+0

因此,您将dir-output重定向到findstr?呸!在Findstr之后,你试图用第二根Pipe完成什么?这是行不通的。请参阅下面的答案。 – 2016-08-31 08:14:19

回答

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

解释

for循环枚举DIR-命令的输出。如果目录名中有空格,则必须指定tokens = *。

的方括号和周围的,如果参数双引号是一个老把戏,以避免出现问题,如果参数还未获得任何(或空)或包含空格

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

相关问题