Переберите каждую строку и удалите ее после - PullRequest
0 голосов
/ 01 мая 2011

У меня есть пакетный скрипт MS-DOS, который выполняет пользовательскую команду для каждой строки в определенном текстовом файле. И я хочу, чтобы он удалил каждую строку после обработки, чтобы в следующий раз, когда я открою пакет, я мог возобновить его с того места, на котором остановился, не начиная заново и не выполняя цикл через те же строки. Строки имеют только цифры.

file.txt:

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

ТАКЖЕ, если это проще, код может также удалить 250 строк сразу после обработки.

Ответы [ 2 ]

1 голос
/ 01 мая 2011

Почему бы не записать последний номер, который вы обработали, в файл вместо удаления из основного файла? Это сделало бы это намного проще. В следующий раз, когда вы обрабатываете файл, вы пропускаете числа, пока не найдете тот, который записали на диск.

0 голосов
/ 23 июля 2015

, если вы не хотите переписывать файл с каждой обработанной строкой:

: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 (в чем я сомневаюсь), это победитне работает

...