我想遍历具有3000行的平面文件(文本文件)。我希望能够打印30行,然后打印便笺,然后再打印接下来的30行和便笺。
我已经尝试了以下方法,但没有用。
For /L %%file in (1,30,3000) do echo %%file
预期结果:
名称描述描述
Xxxxx xxxxxxxxx Xxxxxxx
Xxxxx xxxxxxxxx Xxxxxxx
一些注意事项
名称描述描述
Xxxxx xxxxxxxxx Xxxxxxx
Xxxxx xxxxxxxxx Xxxxxxx
答案 0 :(得分:0)
您的for循环完全无效。元变量只需要一个字符而不是一个单词。类似于%%i
,但无论如何,/L
循环也只会执行您告诉它的次数,而不会执行您在此处的想法。.尝试以下操作:
注意:请确保将代码第三行中的D:\work dir\somefile.txt
更改为文件名(如果在同一目录中),否则请添加完整路径。
@echo off
setlocal enabledelayedexpansion
set "file=somefile.txt"
set /a cnt=0
for /f "delims=" %%i in (%file%) do (
set /a "eval=(cnt+1)%%30"
if not !eval! equ 0 echo %%i
if !eval! equ 0 (
echo %%i
Echo Add YOUR note here!!!
)
set /a cnt+=1
)
如果您随后要求用户手动插入注释,请使用set /p
,如下所示:
@echo off
setlocal enabledelayedexpansion
set "file=somefile.txt"
set /a cnt=0
for /f "delims=" %%i in (%file%) do (
set /a "eval=(cnt+1)%%30"
if not !eval! equ 0 echo %%i
if !eval! equ 0 (
echo %%i
set /p note=Add note?
echo !note!
)
set /a cnt+=1
)