3 回答

TA貢獻1856條經(jīng)驗 獲得超5個贊
下面的帖子有很大幫助,但沒有按照我在問題中所說的那樣做,我需要處理整個整行。這是我發(fā)現(xiàn)的工作方式。
for /F "tokens=*" %%A in (myfile.txt) do [process] %%A
帶有星號(*)的標記關(guān)鍵字將拉出整行的所有文本。如果你沒有放入星號,它只會拉動該行的第一個單詞。我認為它與空間有關(guān)。
我感謝所有的帖子!
如果文件路徑中有空格,則需要使用usebackq
。例如。
for /F "usebackq tokens=*" %%A in ("my file.txt") do [process] %%A

TA貢獻1797條經(jīng)驗 獲得超6個贊
從Windows命令行參考:
要解析文件,忽略注釋行,請鍵入:
for /F "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k
此命令解析Myfile.txt中的每一行,忽略以分號開頭的行,并將第二個和第三個標記從每個行傳遞給FOR主體(標記由逗號或空格分隔)。FOR語句的主體引用%i來獲取第二個標記,%j來獲取第三個標記,%k來獲取所有剩余的標記。
如果您提供的文件名包含空格,請在文本周圍使用引號(例如,“文件名”)。要使用引號,必須使用usebackq。否則,引號將被解釋為定義要解析的文字字符串。
順便說一句,您可以在大多數(shù)Windows系統(tǒng)上找到命令行幫助文件:
"C:\WINDOWS\Help\ntcmds.chm"

TA貢獻1808條經(jīng)驗 獲得超4個贊
在批處理文件中,您必須使用%%
而不是%
:(類型help for
)
for /F "tokens=1,2,3" %%i in (myfile.txt) do call :process %%i %%j %%kgoto thenextstep:processset VAR1=%1set VAR2=%2set VAR3=%3COMMANDS TO PROCESS INFORMATIONgoto :EOF
這樣做:for命令末尾的“do call:process %% i %% j %% k”將forfile命令中獲取的信息從myfile.txt傳遞給“process”'子例程'。
在批處理程序中使用for命令時,需要對變量使用雙%符號。
以下行將那些變量從for命令傳遞給進程'sub routine',并允許您處理此信息。
set VAR1=%1 set VAR2=%2 set VAR3=%3
如果需要更多示例,我會對這個確切的設(shè)置有一些非常高級的用法,我愿意分享。當然,根據(jù)需要添加您的EOL或Delims。
- 3 回答
- 0 關(guān)注
- 2467 瀏覽
添加回答
舉報