2013-02-21 80 views
0

我試圖訪問一個文件並閱讀其內容在嵌套循環,但內環無法訪問文件。(批次)讀取文件批量循環

下面的代碼(整個腳本的一小部分):

for %%b in (!directory!) do (
    echo File used: %%b 
    for /f "delims= " %%c in (%%b) do (
     echo %%c 
    ) 
) 

的問題是:

如果 「%% b」 等於 「C:\ Documents和Settings \測試\ test.txt的」,內循環將嘗試訪問「C:\ Documents」(由於空間)。如果我在「%% b」周圍放置雙引號,它會將其解析爲字符串而不是文件本身。

我該如何處理?該文件是動態的,我不知道它的名字......

感謝

回答

2

你需要使用FOR/F讀取與在名稱包含空格的文件時使用usebackq選項。 USEBACKQ改變了各種引用的語義。通常情況下,沒有引號表示文件,雙引號表示字符串,單引號表示命令。 USEBACKQ選項修改這樣的內容,即引號或雙引號表示文件,單引號表示字符串,後引號表示命令。從命令提示符輸入HELP FOR以獲取更多信息。

for %%b in (!directory!) do (
    echo File used: %%b 
    for /f "usebackq delims= " %%c in ("%%b") do (
     echo %%c 
    ) 
) 
+0

它完美的工作,謝謝!我不知道這個選項會幫助我:) – 2013-02-22 08:05:42