3 回答

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

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

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
在批處理文件中,您必須使用%%
而不是%
:(類型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命令時(shí),需要對(duì)變量使用雙%符號(hào)。
以下行將那些變量從for命令傳遞給進(jìn)程'sub routine',并允許您處理此信息。
set VAR1=%1 set VAR2=%2 set VAR3=%3
如果需要更多示例,我會(huì)對(duì)這個(gè)確切的設(shè)置有一些非常高級(jí)的用法,我愿意分享。當(dāng)然,根據(jù)需要添加您的EOL或Delims。
- 3 回答
- 0 關(guān)注
- 2486 瀏覽
添加回答
舉報(bào)