【问题标题】:Loop through each line and delete it after循环遍历每一行并在之后将其删除
【发布时间】:2011-04-30 22:32:51
【问题描述】:

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

文件.txt:

    76561197967664150
    76561197960466635
    76561197969570587
    76561197978933289
    76561198011880885
    76561197977884769
    76561198010665215
    76561198012847269
    76561197988209745
    76561197991756815
    76561197999860750
    76561198012060656
    76561198020700372
    76561198005281666

另外,如果更简单的话,代码也可以在处理后一次性删除250行。

【问题讨论】:

    标签: loops batch-file line dos


    【解决方案1】:

    为什么不将您处理的最后一个数字写入文件而不是从主文件中删除?这会让事情变得简单得多。下次处理文件时,您会跳过数字,直到找到写入磁盘的那个。

    【讨论】:

      【解决方案2】:

      如果您不想用每个已处理的行重写您的文件:

      :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(我对此表示怀疑),这将不起作用。

      【讨论】:

        猜你喜欢
        • 2016-05-27
        • 2010-09-23
        • 1970-01-01
        • 2022-01-08
        • 2019-11-07
        • 1970-01-01
        • 2014-06-29
        • 2012-03-16
        • 2019-11-10
        相关资源
        最近更新 更多