Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Скопировать bat файлы изменив в них текст, взятый их txt документа

Ответить
Настройки темы
Любой язык - Скопировать bat файлы изменив в них текст, взятый их txt документа

Ветеран


Сообщения: 558
Благодарности: 5

Профиль | Отправить PM | Цитировать


Здравствуйте, подскажите, пожалуйста, как решить следующую задачку:

Есть bat файл. Необходимо скопировать его столько раз, сколько строчек содержит файл replace.txt. В каждом новом, копированном bat файле, нужно заменить фразу (которую я укажу), на фразу, которая находится в txt файле replace.txt (каждая фраза для каждого копированного файла с новой строки). Заменять необходимо все фразы, которые нашлись в исходном файле на фразу в строчке файла replace.txt
Также необходимо дать имя каждому копированному файлу... его имя нужно также получить из замены... нужно взять оригинальное имя файла и заменить в нем фразу, которую я уже указывал, на ту, которая в тхт файле replace.txt (каждая фраза для каждого копированного файла с новой строки)

Пример:

Оригинальный файл с содержанием:
moy start.bat

Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=start.txt
set sDestFile="C:\OneDrive\work\GENERATOR\start.txt"

if defined sSourceFile (
файл replace.txt с заменами:

Код: Выделить весь код
finish
red sofa
big room
В скрипте указываем фразу замены start
После выполнения скрипта должны появиться следующие 3 файла со следующим содержимым:

moy finish.bat

Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=finish.txt
set sDestFile="C:\OneDrive\work\GENERATOR\finish.txt"

if defined sSourceFile (

moy red sofa.bat

Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=red sofa.txt
set sDestFile="C:\OneDrive\work\GENERATOR\red sofa.txt"

if defined sSourceFile (

moy big room.bat

Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=big room.txt
set sDestFile="C:\OneDrive\work\GENERATOR\big room.txt"

if defined sSourceFile (

Отправлено: 07:39, 15-02-2016

 

Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


проще всего так
Код: Выделить весь код
for /f "delims=" %%i in (replace.txt) do (

echo @echo off >>%%i.cmd
echo setlocal enableextensions enabledelayedexpansion >>%%i.cmd

echo set sSourceFile=%%i.txt >>%%i.cmd
echo set sDestFile="C:\OneDrive\work\GENERATOR\%%i.txt" >>%%i.cmd

echo if defined sSourceFile ( >>%%i.cmd
)
если нужно именно брать данные из одного файла и подставлять в другой то будет несколько сложнее. Как я понимаю start.bat приведен не полностью, в приведенном куске ничего экранировать не пришлось, посему тут все почти без изменений, но если будут встречаться с теле cmd символы которые echo воспримет как параметр - возникнут грабли.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:20, 15-02-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 558
Благодарности: 5

Профиль | Отправить PM | Цитировать


спасибо, проверил вариант, работает, надо будет еще на других батах протестировать

Отправлено: 14:26, 15-02-2016 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Скопировать bat файлы изменив в них текст, взятый их txt документа

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Поиск в html файле ip адресов и копирование их в новый txt. 666egor666 Тест-форум 0 30-04-2015 11:31
CMD/BAT - [решено] Переместить txt файлы содержащие определенный текст Alexander_88 Скриптовые языки администрирования Windows 2 18-08-2014 14:57
не запускаются файлы txt, bat, wawe Тест-форум 1 30-07-2012 16:39
CMD/BAT - Найти все файлы с буквой и скопировать их trancef Скриптовые языки администрирования Windows 1 16-12-2011 06:55
CMD/BAT - [решено] Как скопировать файлы, указаные в txt файле MrLOLs Скриптовые языки администрирования Windows 6 05-07-2011 23:18




 
Переход