我需要制作一个可以读取文本文件的批处理文件,而我正在使用Windows 7 ultimate 32 bit
我目前正在使用此代码:
@ECHO OFF
for /f "delims=" %%x in (test.txt) do set "Var=%%x"
ECHO %Var%
pause
但这只是读取第一行,我需要它来阅读整个内容。我需要它来显示全文文件。
答案 0 :(得分:3)
试试这个:
@ECHO OFF
SetLocal EnableDelayedExpansion
for /f "delims=" %%x in ('type test.txt') do (
set "Var=%%x"
ECHO !Var!
)
pause
如果在for
循环内执行多个命令,则需要用括号括起for
循环。除此之外,SetLocal EnableDelayedExpansion
将有助于expand the variable at execution time rather than at parse time。
希望这有帮助。
答案 1 :(得分:2)
实际上,这应该读取整个文件并将Var
设置为 last 行。
如果您需要处理整个文件,您有以下几种选择:
如果您只是需要为每一行做一些事情,那么只需使用一个块而不是set "Var=%%x"
:
for /f "delims=" %%x in (test.txt) do (
rem Do something with %%x
)
如果您需要在内存中逐行完整的文件,请使用计数器并模拟包含大量变量的数组:
setlocal enabledelayedexpansion
set cnt=0
for /f "delims=" %%x in (test.txt) do (
set "ine[!cnt!]=%%x"
set /a cnt+=1
)
set /a numlines=cnt-1
然后您可以使用for /l
循环再次访问它们。