Размножить bat
Здравствуйте, есть код
Код:
for /f "delims=" %%i in (categories.txt) do ( Вопрос.. а можно ли как - то вместить вторую переменную? Я хочу ее вставить в текст, она также должна заменяться на то, что в другом txt файле.. Примерно вот так (конечно это работать не будет): Код:
for /f "delims=" %%i in (categories.txt), %%k (names.txt) do ( |
Цитата:
|
Alexander_88, Как понять: в файле categories.txt и names.txt одинаковое число строк? Надо последовательно выдернуть первую, вторую итд строки в categories.txt и в names.txt и что-то с ними делать?
Как-то так?
Код:
@Echo Off |
спасибо, проверил, работает, только на реальной задаче не работает (только на примере), видимо какие - то символы запрещенные:
Код:
@Echo Off Можно использовать текстовый файл (если так проще сделать), в котором будет текст, который нужно размножать (который жирным шрифтом). Т.е. в скрипте тогда будут ссылки на 3 txt файла. Один txt это код, который требуется размножать, а второй и третий txt, это данные (в них одинаковое количество строк), которые необходимо подставлять в код, который будет в первом txt. Пример: скрипт Код:
script.txt = это то, что нужно размножать. Код:
@Echo Off Код:
sdfhgd 65 Код:
7657557 sdfhgd 65.bat Код:
@Echo Off Код:
@Echo Off |
на реальной задаче
Идея
Код:
@Echo Off Реализация
Код:
@Echo Off Более экономный вариант
Делаем отдельный исполнимый файл, допустим, назовём его Procedurka.bat
Код:
:Procedurka Код:
@Echo Off Код:
@Echo Off |
Попробовал варианты, но толи я не понял как их применять, толи не правильно объяснил опять.. я не понимаю, зачем файл procedurka.bat ? Ведь, если то, что будет размножаться, находится в отдельном файле, то зачем тогда размножающийся текст казывать в теле скрипта?
Прочитал пример, вроде правильно описал. Нужен один любой вариант, либо размножающийся текст в теле скрипта, либо он в отдельном файле.. в теле скрипта, как указывал в посте выше, не работает (красный - размножающийся текст, синие кусочки будут подставляться из файлов categories.txt и names.txt): скрипт (который будем запускать) Код:
@Echo Off файл categories.txt Код:
ccccccccccccccc111111111 Код:
nnnnnnnnnnn111111111 ccccccccccccccc111111111.bat Код:
@Echo Off файл names.bat Код:
@Echo Off то для первого созданного файла должна всегда браться первая строчка, для второго вторая. например, размножающийся текст: Код:
sadsad %~1 %~1 ccccccccccccccc111111111.bat Код:
sadsad ccccccccccccccc111111111 ccccccccccccccc111111111 Код:
sadsad ccccccccccccccc222222222 ccccccccccccccc222222222 А второй вариант (нужен какой - то один) - размножающийся текст не в теле скрипта, а в отдельном файле txt (это пример, который я показывал в предыдущем посте): скрипт (который мы будем запускать). Код:
script.txt = это то, что нужно размножать. содержание script.txt (то, что мы будем размножать (в предыдущем примере было красным цветом и другой текст (здесь я просто взял текст из примера предыдущего поста))) Код:
@Echo Off содержание categories.txt (тоже пример из предыдущего поста) Код:
sdfhgd 65 names.txt (тоже их предыдущего поста) Код:
7657557 результат выполнения (созданные файлы): sdfhgd 65.bat Код:
@Echo Off Код:
@Echo Off |
Alexander_88, Было бы неплохо, чтобы Вы освоили тег Spoiler. Ваши пространные сообщения делают не очень комфортным просмотр сообщений в теме :)
По сути: либо я Вас не понимаю, либо Вы меня не услышали :). Разберём скрипт более подробно из предыдущего сообщения "на реальной задаче"
Вариант "Реализация".
Set "BatOut=Z:\Users\Alexander\work\GENERATOR" Насколько я понял, в эту папку складываем сгенерированные батники. Файлы
"Z:\Users\Alexander\work\GENERATOR\categories.txt" "Z:\Users\Alexander\work\GENERATOR\names.txt" содержат:
categories.txt
Код:
START Код:
start Set "FilesIn=Z:\Soft_In" Как я понял, здесь расположены папки с файлами, в частности, Z:\Soft_In\Start Содержимое папки Z:\Soft_In\Start
Код:
0041start.mp4 Позволю себе повторить код: Реализация
Код:
@Echo Off В зелёной части :Out формируется главная часть генерируемого батника, формируется вызов :Procrdurka с полученными параметрами. В синей части к главной части пристёгивается :Procrdurka и всё, что ниже её (красный цвет). После отработки батника имеем:
До запуска батника в папке BatOut=Z:\Users\Alexander\work\GENERATOR имеются файлы
Код:
categories.txt Код:
cat2.bat Код сгенерированного start.bat
Код:
@Echo Off Код сгенерированного cat2.bat
Код:
@Echo Off Запустим start.bat. Содержимое папки Z:\Soft_In\Start
Код:
0041start.mp4 Очевидно, во всех сгенерированных батниках подавляющая часть кода, начиная от :Procedurka, одинаковая. Резонно выделить эту часть в отдельный файл, например,
Z:\Users\Alexander\work\GENERATOR\Procedurka.bat Код:
:Procedurka Более экономный вариант
батники генерируются без текста :Procedurka
Код:
@Echo Off сгенерированный при этом файл start.bat
Код:
@Echo Off |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Мне кажется вы начали вникать в текст (скрипт), который нужно размножать, но он просто приведен для примера, там может быть все, что угодно, не нужно думать о том, что он делает. Цель просто его размножить.. т.е. просто его надо накопировать по нескольким файлам.. Конечно я бы сам смог накопировать множество файлов с этим текстом (скриптом), ведь я умею ctrl+C, ctrl+V нажимать :) Но проблема в том, что часть текста должна меняться (в каждом созданном файле, нужно менять часть текста (одно - два слова)), а также имена файлов, которые будут создаваться, должны быть разными. Для того, чтобы понять что на что будет меняться, и каким будет задаваться имя каждого созданного файла, нужны как раз файлы с нашими переменными (categories.txt, names.txt). Сейчас проблема в том, что если я пытаюсь, вставить размножающий текст (красный) в синюю область, то так не работает.. ничего не создается...... Тогда я убираю все из синей области, чтобы там ничего не было, и пытаюсь вставить размножающийся текст в красную область, туда же, где он у вас на примере. Запускаю.. файлы создаются, имена файлов все как и надо берется из переменных, в каждый файл копируется красный текст... все как и нужно, файлы нужных имен, текст размножается..., но этот самый текст везде одинаковый, т.е. в него не подставляются переменные из файлов categories и names :( |
Цитата:
Цитата:
Цитата:
VBS
Есть размножаемый текст, например "Z:\Users\Alexander\work\GENERATOR\fish.banner"
Код:
Наша продукция "^names^" имеет ^categories^. Файл "Z:\Users\Alexander\work\GENERATOR\names.txt" Код:
Офигительная хрень Код:
потрясающий вкус и омерзительный вид Код:
INcategories = "Z:\Users\Alexander\work\GENERATOR\categories.txt" Код:
Наша продукция "Офигительная хрень" имеет потрясающий вкус и омерзительный вид. |
а не проще:
конфиг, куда вносим изменения шаблон (с нужным уже расширением) принимающий изменения for (номера или имена) copy готовый шаблон "куда и что%%i" |
Спасибо, сейчас все, как хотел работает, изменил немного, имена берутся из categories, а расширение всегда ".bat". Вроде ничего не испортил... скрипт, который размножил, попробовал запустить, тоже работает. :)
Скрытый текст
Код:
INcategories = "C:\Users\Alexander\work\GENERATOR\categories.txt" |
Alexander_88, Моя знакомая говАривала: я с Вас валяюсь! :)
Цитата:
Не знаю, что за батник, но Цитата:
Цитата:
Цитата:
|
Цитата:
|
Время: 14:24. |
Время: 14:24.
© OSzone.net 2001-