Как добавить номера строк в текстовый файл из пакетного файла (Windows) - PullRequest
4 голосов
/ 12 мая 2011

Как мне добавить номера строк в текстовый файл из командного файла / командной строки?

например.

1 line1
2 line2
etc

Ответы [ 3 ]

3 голосов
/ 12 мая 2011

Вот, пожалуйста:

@echo off
FOR /L %%G IN (1, 1, 100) DO (
     echo %%G line%%G
)

Это, вероятно, будет работать только в командном файле, а не в командной строке.

Для получения дополнительной информации, см. Эту страницу .

Если вы хотите перебрать существующий файл и добавить к нему числа, вам нужно вместо этого обработать файл с помощью for / F loop , и в каждой итерации цикла использовать оператор типа set /a counter+=1 чтобы увеличить счетчик. Затем выложите каждую строку в новый файл и, наконец, замените старый файл новым.

2 голосов
/ 13 мая 2011

Самое близкое, что я мог получить, это то, что не работает:

@echo off

set file=%1     
set x=1

for /f "delims=|" %%i in (%file%) do (
  echo %x% %%i
  set /a x=%x%+1
)

set внутри цикла for не работает (потому что мы в дерьмовом DOS).

Замена set на call на другой пакетный файл для увеличения и установки x также не работает.

Добавление

Хорошо, добавив исправления, предложенные @indiv, мы получим следующее (что, похоже, работает):

@echo off

set file=%1     
set x=1
setlocal EnableDelayedExpansion

for /f "delims=|" %%i in (%file%) do (
  echo !x! %%i
  set /a x=!x!+1
)
1 голос
/ 30 июля 2018

Все слишком сложно, давай раскроем это. Для Windows XP и более поздних версий (нам нужен findstr) все, что требуется в командной строке или в пакете для добавления номеров строк во входной файл, как это требуется для OP ...

type "in.txt"|findstr/n ^^ > "out.txt"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...