Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Необходимо заменять известную часть файла на значение переменной (http://forum.oszone.net/showthread.php?t=303488)

Ingvar2 05-08-2015 18:15 2537452

Необходимо заменять известную часть файла на значение переменной
 
Имеется файл 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 2537666

Цитата:

Цитата Ingvar2
Скопированный файл %%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 2537752

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
)



Время: 19:10.

Время: 19:10.
© OSzone.net 2001-