CMD/BAT - Необходимо заменять известную часть файла на значение переменной

Ответить
 • Просмотры: 1
Аватара пользователя
Ingvar2

CMD/BAT - Необходимо заменять известную часть файла на значение переменной

Сообщение Ingvar2 »

Имеется файл users.txt, в нем на каждой строчке указан только номер телефона (11 символов на каждой строке). Я создаю цикл и при каждом проходе цикла:

1. меняется значение переменной %%a, которое равно значению строчки из файла users.txt

2. создается каталог с именем равным значению переменной %%a

3. копируется в созданный каталог известный мне файл (при копировании переименовывается имя, добавляет префикс равный значению %%a).

Ниже привожу используемый мною код:





Код:

Код: Выделить всё

echo off
set /a a=0
for /f "tokens=*" %%a in (users.txt) do (
 set /a a=a+1
 md %%a
 COPY servers_correct_new.bat %%a\%%a_servers_correct_new.bat
)

Скопированный файл %%a_servers_correct_new.bat большой, в нем 67 строк. Посередине 17й строки в данном файле имеется следующий текст "01234567890". Данный текст мне необходимо заменить на значение переменной %%a , и сохранить эти изменения в моем файле. Подскажите, пожалуйста, как это сделать. В распоряжении у меня есть только CMD без каких-либо дополнительных скачиваемых утилит.
Аватара пользователя
Iska

Re: CMD/BAT - Необходимо заменять известную часть файла на значение переменной

Сообщение Iska »

Цитата Ingvar2:



Скопированный файл %%a_servers_correct_new.bat большой, в нем 67 строк. Посередине 17й строки в данном файле имеется следующий текст "01234567890". Данный текст мне необходимо заменить на значение переменной %%a , и сохранить эти изменения в моем файле. Подскажите, пожалуйста, как это сделать.
CMD/BAT - Необходимо заменять известную часть файла на значение переменной




Вы можете, например, не копировать файл «servers_correct_new.bat»:



Код:

Код: Выделить всё

COPY servers_correct_new.bat %%a\%%a_servers_correct_new.bat

а создавать его, указывая в нужном месте значение переменной:



Код:

Код: Выделить всё

>"%%a\%%a_servers_correct_new.bat" (
    echo bla-bla-bla1
    echo bla-bla-bla2
    …
    echo Начало строки 17 %%a Окончание строки 17
    echo bla-bla-bla18
    …
    echo bla-bla-bla67
)
Аватара пользователя
Ingvar2

Re: CMD/BAT - Необходимо заменять известную часть файла на значение переменной

Сообщение Ingvar2 »

Iska, спасибо, ваш ответ мне помог, от COPY я действительно, реализовал следующим образом:

1. Разбил файл servers_correct_new.bat на два: s1_16.bat (содержит строки с первой по 16 из servers_correct_new.bat) и s8_70.bat (содержит строки с 18й по 70 из servers_correct_new.bat).

2. Отдельно создаю 17ю строку с указанием переменной в нужном месте.

3. Записываю все три составляющие в конечный файл.

В итоге мой код выглядит вот так:



Код:

Код: Выделить всё

echo off
set /a a=0
for /f "tokens=*" %%a in (users.txt) do (
 set /a a=a+1
 md %%a
 ECHO texttexttext %%a texttexttext >s17.bat
 COPY s1_16.bat + s17.bat + s18_70.bat %%a\%%a_servers_correct_new.bat
 del s17.bat
)
Ответить

Вернуться в «Скриптовые языки администрирования Windows»