2013-02-08 13 views
1

我需要在自己的變量中獲取文本中的每一行。就像這樣:如何批量讀取txt中的行。我怎麼把每一行放在自己的變量中?

的文本文件:

TEMPLATE: Permission, Username, Password; 
Admin, Admin, Superflip; 
User, Mom, Hi; 

我想在這個文件中其自己的變量每行。可能嗎?

+0

基本上你想創建變量數組? – LittleBobbyTables 2013-02-08 21:16:44

+0

是要修復的行數? – 2013-02-08 22:42:20

+0

如果你已經解決了你的問題,不要忘記選擇一個最佳答案。 – 2013-03-04 08:56:32

回答

5

下應該工作...

@echo off & setlocal enabledelayedexpansion 
set num=0 
::Change "File_Path" to where your file is. If it is in the same directory, just put the name. 
for /f "delims=" %%i in (File_Path) do (
    set /a num+=1 
    set line[!num!]=%%i 
) 

腳本是如何工作的: 變量num設置在for循環使用。 for循環遍歷文件File_Path中的每一行,將該行設置爲line,後綴爲數字。

此腳本模擬創建一個數組。要調用特定行,請輸入%line[number_of_line]%。例如,要檢查是否line 3line 5都是一樣的,你會把類似

if %line[3]%==%line[5]% echo Line 3 and 5 are the same. 
+0

+1,如果你改成'for/f「delims =」%% i',那麼完整的行被存儲爲 – jeb 2013-02-09 11:15:25

+0

+1,你也可以用'for/f「令牌= 1,2 delims ==「%% a in('set line')do echo Line %% a was %% b' – 2013-02-09 22:24:12

+1

我建議你在這些情況下使用標準數組符號:'set line [!num!] = %% i'。請參閱http://stackoverflow.com/questions/10544646/dir-output-into-bat-array/10569981#10569981 – Aacini 2013-02-10 03:25:40

1

你也可以只做到這一點簡單:

< filename.txt (
set /p line1= 
set /p line2= 
set /p line3= 
) 

這是做的更簡單的方法。

+0

它也會讀取不超過三行。 :) – 2013-02-10 00:42:57

相關問題