2009-09-04 39 views
0

目前,我簡單的批處理腳本是這樣的:For循環忽略其中有空格的目錄?

@echo off 
for /D /r C:\myprojects\AIS\ %%G in (_svn) do rd /S /Q %%G 
pause 

不幸的是,這種跳過任何目錄在其中一個空格字符,例如一個名爲「我的項目」目錄中。我如何解決這個問題,並確保我遍歷該目錄?

+0

是此Windows(DOS)?也許是'批處理文件'標籤 – 2009-09-04 18:26:40

+0

是的。我把「批處理」標籤放在它上面,但如果你願意,我還會包含「批處理文件」。 – Chris 2009-09-04 18:28:04

+0

遺憾,沒有看到,腦死亡的一個星期五上午 – 2009-09-04 18:29:07

回答

1

你可以把引號將目錄名?

+0

我嘗試這樣做:對/ d/R C:\ electionscanadaprojects \ AIS \ 「%% G」 在(_svn)做RD/S/Q 「%% G」,因爲%%ģ保持目錄名,但沒有骰子。 – Chris 2009-09-04 18:29:00

+0

你是否必須以某種方式逃避引號?我只是猜測在這裏,我不是DOS的人(這是DOS,對吧?) – 2009-09-04 18:30:14

+0

是的,它是DOS。我不相信你必須逃避引號,因爲如果你已經給出了目錄的直接路徑,這通常會起作用。但是,我認爲,它存儲在一個變量中導致了我的問題。 (我知道批處理腳本,可能是錯的) – Chris 2009-09-04 18:33:09

2

嗯...這似乎爲我工作。您是否嘗試過echo?

C:\tmp> TREE /A C:\tmp\xxx 
C:\TMP\XXX 
\---one one 
    \---two two 

C:\tmp> FOR /D /R c:\tmp\xxx %I IN (_svn) DO @ECHO RD "%I" 
RD "c:\tmp\xxx\_svn" 
RD "c:\tmp\xxx\one one\_svn" 
RD "c:\tmp\xxx\one one\two two\_svn" 

你可能需要引用你的論點rmdir。如果你想成爲真正的偏執狂,然後用%~I代替,以防止亂是FOR /D /R ... %I IN ("_svn")否則將導致。