2013-10-27 85 views
0

我試圖運行一個簡單的批處理文件。批處理文件路徑中的空間

for /f %%a IN ('dir /b /s "%~dp0\EnsembleIndependant\*.mis"') DO (ECHO %%a >> ResultatVorace.txt & CALL vorace.exe -f %%a >> ResultatVorace.txt) 

這僅適用如果在批處理文件的路徑沒有空格。

批次是:

C:\用戶\拉斐爾\文檔\的Visual Studio 2012 \項目\ vorace \發佈\ vorace.exe

我想循環的文件,通過在:

C:\用戶\拉斐爾\文檔\的Visual Studio 2012 \項目\ vorace \發佈\ EnsembleIndependant

誰能幫助我。

謝謝。

感謝您的建議傢伙。用於/ f「delims =」的 解決了我的問題。

+0

它究竟在哪裏失敗?嘗試引用該變量。 – Henry

回答

3
for /f "delims=" %%a IN ('dir /b /s "%~dp0EnsembleIndependant\*.mis"') DO (ECHO %%a >> ResultatVorace.txt & CALL vorace.exe -f %%a >> ResultatVorace.txt) 

%~dp0早已在最後一個退格。

+0

該字符被稱爲反斜槓。我剛纔在這裏評論說,如果兩個反斜槓是順序的,Windows現在不在乎,它將它們視爲一個反斜槓。 – foxidrive

+0

@foxidrive是的,'dir'可以,但有些命令不能。 – Endoro

3
for /f "delims=" %%a IN ('dir /b /s "%~dp0\EnsembleIndependant\*.mis"') DO (ECHO %%a >> ResultatVorace.txt & CALL vorace.exe -f %%a >> ResultatVorace.txt) 

空間是批量標準的分隔符for循環以及<tab>"delims="你停用。

+1

+1比我快一點 – jeb

2

FOR/F用作標準分隔符spacetab,爲了避免這種情況,您需要添加選項。

for /f "delims=" %%a IN ('dir /b /s "%~dp0\EnsembleIndependant\*.mis"') DO (ECHO %%a >> ResultatVorace.txt & CALL vorace.exe -f %%a >> ResultatVorace.txt) 
相關問題