powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Необходимо заменять известную часть файла на переменную
8 сообщений из 8, страница 1 из 1
Необходимо заменять известную часть файла на переменную
    #39023808
Ingvar2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется файл users.txt, в нем на каждой строчке указан только номер телефона (11 символов на каждой строке). Я создаю цикл и при каждом проходе цикла:
1. меняется значение переменной %%a, которое равно значению строчки из файла users.txt
2. создается каталог с именем равным значению переменной %%a
3. копируется в созданный каталог известный мне файл (при копировании переименовывается имя, добавляет префикс равный значению %%a).
Ниже привожу используемый мною код:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
echo off
set /a a=0
for /f "tokens=*" %%a in (users.txt) do (
 set /a a=a+1
 rem echo users2 - %%a >>log.txt 
 md %%a
 COPY servers_correct_new.bat %%a\%%a_servers_correct_new.bat
)



Скопированный файл %%a_servers_correct_new.bat большой, в нем 67 строк. Посередине 17й строки в данном файле имеется следующий текст "01234567890". Данный текст мне необходимо заменить на значение переменной %%a , и сохранить эти изменения в моем файле. Подскажите, пожалуйста, как это сделать. В распоряжении у меня есть только CMD без каких-либо дополнительных скачиваемых утилит.
...
Рейтинг: 0 / 0
Необходимо заменять известную часть файла на переменную
    #39023917
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заменять текст в файле для CMD слишком круто.
Лучше перейди на VBS. Он есть во всех виндах и ничего скачивать не нужно.
...
Рейтинг: 0 / 0
Необходимо заменять известную часть файла на переменную
    #39023918
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlЗаменять текст в файле для CMD слишком круто.
Лучше перейди на VBS. Он есть во всех виндах и ничего скачивать не нужно.Что мелочиться? Переходим на PowerShell сразу.
Код: sql
1.
(Get-Content test.txt) | ForEach-Object { $_ -replace "foo", "bar" } | Set-Content test2.txt
...
Рейтинг: 0 / 0
Необходимо заменять известную часть файла на переменную
    #39023934
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterWhite OwlЗаменять текст в файле для CMD слишком круто.
Лучше перейди на VBS. Он есть во всех виндах и ничего скачивать не нужно.Что мелочиться? Переходим на PowerShell сразу.PowerShell в версиях младше семерки надо самостоятельно выкачивать. А wscript есть из коробки начиная с 98-ой.
...
Рейтинг: 0 / 0
Необходимо заменять известную часть файла на переменную
    #39023978
dmikelios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен с тем, что для обработки символов в строке больше подходят PowerShell и wscript, но в случае с servers_correct_new.bat можно справиться только средствами CMD. Для этого servers_correct_new.bat предварительно вручную разделяем на два файла: s1_16.bat, содержащий взятые из servers_correct_new.bat строки с 1 по 16 и имеющий 17-ую пустую строку, и s18_67.bat, содержащий строки с 18 по 67. А 17-ую строку добавляем в Ваш код, заменив в ней 01234567890 на %%a. Например, если 17-ая строка такая
line17begin01234567890end

то в Вашем коде заменяем
Код: vbnet
1.
COPY servers_correct_new.bat %%a\%%a_servers_correct_new.batt


на
Код: vbnet
1.
2.
ECHO line17begin%%aend > s17.bat 
COPY s1_16.bat + s17.bat + s18_67.bat %%a\%%a_servers_correct_new.bat
...
Рейтинг: 0 / 0
Необходимо заменять известную часть файла на переменную
    #39024167
Ingvar2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmikelios, спасибо, мне очень помог ваш ответ.
В итоге мой код выглядит вот так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
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
 ECHO texttexttext %%a texttexttext >s17.bat
 COPY s1_16.bat + s17.bat + s18_70.bat %%a\%%a_servers_correct_new.bat
 del s17.bat
)
...
Рейтинг: 0 / 0
Необходимо заменять известную часть файла на переменную
    #39024192
dmikelios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть смысл удалить из кода команду
Код: vbnet
1.
COPY servers_correct_new.bat %%a\%%a_servers_correct_new.bat


поскольку файл %%a\%%a_servers_correct_new.bat будет перезаписан командой
Код: vbnet
1.
COPY s1_16.bat + s17.bat + s18_70.bat %%a\%%a_servers_correct_new.bat



То есть, после удаления команды код будет таким:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
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
)
...
Рейтинг: 0 / 0
Необходимо заменять известную часть файла на переменную
    #39024196
Ingvar2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmikelios, да спасибо, я случайно оставил эту строчку.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Необходимо заменять известную часть файла на переменную
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]