2011-02-15 107 views
11

我想對文件的每一行進行一些處理。用於處理空格的文件名

for /f "delims=" %%i in ("%RF_PROPERTIES%") do (   
    echo %%i 
) 

我的RF_PROPERTIES指向帶空格(c:\ program files \ Arcot systems \ conf \ rf.properties)的文件路徑。它抱怨說環境變量C:\ Program Files \ Arcot沒有定義,即使我提供了引號。如何讓它工作?

+0

嘗試做設定RF_PROPERTIES = 「C:\ Program Files文件\阿科特系統\的conf \ rf.properties」 前循環 – BlackBear 2011-02-15 16:26:15

回答

17

嘗試添加usebackq選項:

for /f "usebackq delims=" %%i in ("%RF_PROPERTIES%") do (   
    echo %%i 
) 

for /?輸出說明:

有usebackq - 指定 新的語義已經生效, 其中執行一個後引號的字符串作爲 命令並且單引號字符串是 文字字符串命令並且允許使用 雙引號引用文件名在 文件集。

+0

謝謝你。我天真地認爲「usebackq」僅僅是關於後面的報價處理,在我看來這不會影響雙引號處理。 (是的,應該有RTF-ed整個M.;) – yoyo 2014-04-24 21:47:37

1

使用有usebackq是一個好主意 - 但你確實有使用它們:

for /f "usebackq delims=" %%i in (`dir "%RF_PROPERTIES%" /s /b`) do (
    echo %%i 
) 
+0

你沒有,實際上 - 在我的答案中閱讀引用的大膽部分。 – Blorgbeard 2016-06-21 21:09:21

相關問題