2014-01-28 68 views
1

這就是我想要做的,一個讀取文件(例如file.txt)和輸出行#+令牌的批處理。批量讀取文件和輸出行號+令牌?

這是我試圖做的(這顯然不工作):

set count=0 
set InputFile=file.txt 
for /f "tokens=1-3 delims=," %%A IN (%InputFile%) DO (
    set /a count+=1 
    echo %count%. %%A 
) 

file.txt的包含:

something,else, 
something1,else1, 
something2,else2, 
something3,else3, 
etc. 

我想輸出是:

1. something 
2. something1 
3. something2 
etc. 

這段代碼實際上是在輸出:

0. someting 
0. something1 
0. something2 
etc 

任何想法?

+0

可能重複的[批處理文件變量作用域問題](http://stackoverflow.com/questions/21387098/batch-file-variable-scope-issue) – Laf

+0

我已經標記爲重複的問題(請參閱自動評論以上)。我提供的答案適用於您的案例,MC ND答案中的解釋將準確地告訴您批處理文件的情況。 – Laf

+0

我不明白,我嘗試添加setlocal EnableDelayedExpansion,但它沒有改變任何東西。 您確定提供的答案適用嗎? – user3246010

回答

2

您需要在FOR循環之前添加SETLOCAL ENABLEDELAYEDEXPANSION

然後將echo %count%. %%A更改爲echo !count!. %%A

+0

否。即使沒有用驚歎號括起來,'set/a'命令也能正確地獲取該值。但是,它們是'echo!count!'所必需的。 %% A' – Aacini

+0

你是對的。現在修復。 – aphoria