我有一个MS-DOS批处理脚本,它为特定文本文件中的每一行执行自定义命令。我希望它在处理完之后删除每一行,以便下次打开批处理时我可以从我停止的地方恢复它,而不是从头开始并通过相同的行执行循环。这些行只有数字。
file.txt的:
76561197967664150
76561197960466635
76561197969570587
76561197978933289
76561198011880885
76561197977884769
76561198010665215
76561198012847269
76561197988209745
76561197991756815
76561197999860750
76561198012060656
76561198020700372
76561198005281666
另外,如果更容易,代码也可以在处理后一次删除250行。
答案 0 :(得分:1)
为什么不将您处理的最后一个数字写出来而不是从主文件中删除?这会让事情变得简单得多。下次处理文件时,您会跳过数字,直到找到写入磁盘的数字。
答案 1 :(得分:0)
如果您不想用每个处理过的行重写文件:
:loop
REM read first line:
set /p first=<file.txt
REM write changed file.txt:
find /v "%first%" file.txt>file.tmp
del file.txt
ren file.tmp file.txt
echo processing %first%...
echo press any key for next line or CTRL-C to break
pause >nul
goto :loop
注意:如果你真的意味着MS-DOS(我怀疑),这将无效。