2012-03-15 156 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文件中

相關問題