目前,我簡單的批處理腳本是這樣的:For循環忽略其中有空格的目錄?
@echo off
for /D /r C:\myprojects\AIS\ %%G in (_svn) do rd /S /Q %%G
pause
不幸的是,這種跳過任何目錄在其中一個空格字符,例如一個名爲「我的項目」目錄中。我如何解決這個問題,並確保我遍歷該目錄?
目前,我簡單的批處理腳本是這樣的:For循環忽略其中有空格的目錄?
@echo off
for /D /r C:\myprojects\AIS\ %%G in (_svn) do rd /S /Q %%G
pause
不幸的是,這種跳過任何目錄在其中一個空格字符,例如一個名爲「我的項目」目錄中。我如何解決這個問題,並確保我遍歷該目錄?
你可以把引號將目錄名?
我嘗試這樣做:對/ d/R C:\ electionscanadaprojects \ AIS \ 「%% G」 在(_svn)做RD/S/Q 「%% G」,因爲%%ģ保持目錄名,但沒有骰子。 – Chris 2009-09-04 18:29:00
你是否必須以某種方式逃避引號?我只是猜測在這裏,我不是DOS的人(這是DOS,對吧?) – 2009-09-04 18:30:14
是的,它是DOS。我不相信你必須逃避引號,因爲如果你已經給出了目錄的直接路徑,這通常會起作用。但是,我認爲,它存儲在一個變量中導致了我的問題。 (我知道批處理腳本,可能是錯的) – Chris 2009-09-04 18:33:09
嗯...這似乎爲我工作。您是否嘗試過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")
否則將導致。
是此Windows(DOS)?也許是'批處理文件'標籤 – 2009-09-04 18:26:40
是的。我把「批處理」標籤放在它上面,但如果你願意,我還會包含「批處理文件」。 – Chris 2009-09-04 18:28:04
遺憾,沒有看到,腦死亡的一個星期五上午 – 2009-09-04 18:29:07