我有一个文件output.txt
,其中包含以下内容
state online
progress 55
time 21/01/2019
type master
disk_count 55
disk_type medium
并连续100行,并用空格隔开。
我尝试过:
@echo off
for /F "delims=" %%i in (output.txt) do ( set z=%%i goto print )
:print
echo %z%
for /f "skip=1' %%g in (output.txt) DO if not defined line set "line=%%g"
echo %line%
我需要逐行打印出每一行。
如果我尝试打印,有时会忽略空格旁边的字符。
请帮忙处理批处理文件。.
答案 0 :(得分:0)
如果我明白了您的意思,您就会想要:
@echo off
for /f "delims=" %%i in (output.txt) do echo %%i
根据您的评论,一行一行地执行操作,我们需要退出循环,直到您决定再次输入循环为止:
@echo off
set /a cnt=0
:begin
for /f "delims=" %%i in ('type output.txt ^| more +%cnt%') do echo %%i goto continue
:continue
set /a cnt+=1
pause>nul
goto begin
或者,您需要告诉scipt转到哪行:
@echo off
:begin
set /p cnt=Enter the line number to print (1,2,3,etc):
set /a cnt-=1
for /f "delims=" %%i in ('type output.txt ^| more +%cnt%') do echo %%i & goto continue
:continue
set /a cnt+=1
echo Press any key to display the next line.
pause>nul
goto begin
您会注意到,首先我们设置变量%cnt%
,然后再次减去1,这是由于more +N
命令所致。如果要显示第一行,则表示我们不想跳过任何行,因此选择1
并扣除第一行,这意味着我们跳过0
行,将显示行{{1} }等。