Loops 循环浏览每一行并在之后删除它

Loops 循环浏览每一行并在之后删除它,loops,batch-file,line,dos,Loops,Batch File,Line,Dos,我有一个MS-DOS批处理脚本,它为特定文本文件中的每一行执行自定义命令。我希望它在处理后删除每一行,这样下次打开批处理时,我就可以从停止的地方恢复批处理,而无需重新开始并通过相同的行执行循环。这些行只有数字 file.txt: 76561197967664150 76561197960466635 76561197969570587 76561197978933289 76561198011880885 76561197977884769

我有一个MS-DOS批处理脚本,它为特定文本文件中的每一行执行自定义命令。我希望它在处理后删除每一行,这样下次打开批处理时,我就可以从停止的地方恢复批处理,而无需重新开始并通过相同的行执行循环。这些行只有数字

file.txt:

    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(我对此表示怀疑),这是行不通的