Войти

Показать полную графическую версию : Необходимо заменять известную часть файла на значение переменной


Ingvar2
05-08-2015, 18:15
Имеется файл 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
06-08-2015, 06:19
Скопированный файл %%a_servers_correct_new.bat большой, в нем 67 строк. Посередине 17й строки в данном файле имеется следующий текст "01234567890". Данный текст мне необходимо заменить на значение переменной %%a , и сохранить эти изменения в моем файле. Подскажите, пожалуйста, как это сделать. »
Вы можете, например, не копировать файл «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
06-08-2015, 11:43
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
)




© OSzone.net 2001-2012