Loops 循环浏览每一行并在之后删除它
我有一个MS-DOS批处理脚本,它为特定文本文件中的每一行执行自定义命令。我希望它在处理后删除每一行,这样下次打开批处理时,我就可以从停止的地方恢复批处理,而无需重新开始并通过相同的行执行循环。这些行只有数字 file.txt:Loops 循环浏览每一行并在之后删除它,loops,batch-file,line,dos,Loops,Batch File,Line,Dos,我有一个MS-DOS批处理脚本,它为特定文本文件中的每一行执行自定义命令。我希望它在处理后删除每一行,这样下次打开批处理时,我就可以从停止的地方恢复批处理,而无需重新开始并通过相同的行执行循环。这些行只有数字 file.txt: 76561197967664150 76561197960466635 76561197969570587 76561197978933289 76561198011880885 76561197977884769
76561197967664150
76561197960466635
76561197969570587
76561197978933289
76561198011880885
76561197977884769
76561198010665215
76561198012847269
76561197988209745
76561197991756815
76561197999860750
76561198012060656
76561198020700372
76561198005281666
此外,如果更简单,代码也可以在处理后一次删除250行。为什么不将处理的最后一个数字写入文件,而不是从主文件中删除?这将使事情变得简单得多。下次处理文件时,您将跳过数字,直到找到写入磁盘的数字。如果您不想用处理过的每一行重写文件:
: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
:循环
REM读取第一行:
set/p first=file.tmp
del file.txt
ren file.tmp file.txt
回显处理%first%。。。
按任意键进入下一行,或按CTRL-C键中断
暂停>nul
转到:循环
注意:如果你真的是指MS-DOS(我对此表示怀疑),这是行不通的