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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Создание bat файла c помощью другого bat файла (http://forum.oszone.net/showthread.php?t=298404)

GODolubOFF 15-04-2015 12:52 2496050

Создание bat файла c помощью другого bat файла
 
Добрый день форумчане.
Чтобы вы могли понять, для чего мне нужно создание bat файла с помощью другого файла, советую прочитать ранее созданную мной тему http://forum.oszone.net/thread-297996.html
У клиента порядка 60 баз 1С.
Для каждой из баз, я создал bat файл с скриптом (пути и имена соответственно для каждой базы я менял):

chcp 866>nul
md D:\1cBackupElena\v82BackupElena\%DATE%
"C:\Program Files\HaoZip\haozipc.exe" a D:\1cBackupElena\v82BackupElena\%DATE%\"%DATE%_АКАДЕМИЯ МОДЫ".7z "D:\1cElena\АКАДЕМИЯ МОДЫ" >>D:\1cBackupElena\v82BackupElena\akademiya_mody_log.txt
chcp 866>nul

Я бы не обратился к вам с такой проблемой, если бы кол-во баз у них не увеличивалось. Каждую неделю они создают новые базы, в связи с этим мне приходится приезжать к ним и создавать bat файл для каждой из новых баз, добавлять его в планировщик и т.д.
Возможно ли создать такой bat файл который будет проверять папки с базами по пути D:\1cElena\ (или по другому пути), записывать к примеру в какой то специальный лог файл имена папок с базами (или другой способ), и при появлении новой базы, создавать для нее bat файл с скриптом такого же типа как я указал выше, но с другими именами.

Если это возможно, то очень прошу помочь. Будут вопросы - пишите, постараюсь ответить.

Iska 15-04-2015 13:17 2496075

Цитата:

Цитата GODolubOFF
Для каждой из баз, я создал bat файл с скриптом (пути и имена соответственно для каждой базы я менял): »

А должны были указывать аргументами при вызове одного-единственного пакетного файла, вместо того, чтобы плодить их кучу. Идея:
Цитата:

Цитата GODolubOFF
Создание bat файла c помощью другого bat файла »

— такая же ересь.

Цитата:

Цитата GODolubOFF
мне приходится приезжать к ним »

Заведите себе удалённый доступ до них и не ездите.

GODolubOFF 15-04-2015 13:28 2496088

Я понимаю, что для вас это ересь, но начальство мое, мне именно так поставило задачу - создать для каждой базы отдельный bat файл.
По поводу удаленного доступа. Эта идея тоже рассматривалась, но это никому не надо, т.к. таким образом клиент будет на моем постоянном обслуживании, при этом платить за это он ничего не хочет. Учитывая то, сколько у меня других задач, то это не представляется возможным. Запустить батник и добавить новосозданный в планировщик я их научу и инструкцию напишу, а вот научить их создавать bat файлы для новых баз будет сложно, т.к. клиент кроме как включить компьютер и запустить 1С, больше ничего не умеет, не хочет и боится.
Поэтому вот и приходится корячиться.
Если есть возможность помочь, то я буду безмерно благодарен.

GODolubOFF 15-04-2015 20:33 2496333

Возможно я смогу переубедить мнение начальства, и все таки мне дадут добро на создание единого bat файла, который будет запускать последовательно архивацию баз.
В таком случае ЧТО НУЖНО ПРОПИСАТЬ в этом едином bat файле, чтобы код который я указал ниже (он типовой для каждой из баз, меняется только название и путь), позволял запускать архивацию базы после того, когда выполнится архивация предыдущей? Таким образом я так понимаю уменьшится пауза между архивациями, да и bat файл таким образом будет единым для всех баз.

chcp 866>nul
md D:\1cBackupElena\v82BackupElena\%DATE%
"C:\Program Files\HaoZip\haozipc.exe" a D:\1cBackupElena\v82BackupElena\%DATE%\"%DATE%_АКАДЕМИЯ МОДЫ".7z "D:\1cElena\АКАДЕМИЯ МОДЫ" >>D:\1cBackupElena\v82BackupElena\akademiya_mody_log.txt
chcp 866>nul

chcp 866>nul
md D:\1cBackupElena\v82BackupElena\%DATE%
"C:\Program Files\HaoZip\haozipc.exe" a D:\1cBackupElena\v82BackupElena\%DATE%\"%DATE%_СтроМакс".7z "D:\1cElena\СтроМакс" >>D:\1cBackupElena\v82BackupElena\stromaks_log.txt
chcp 866>nul

Надеюсь на помощь.

Iska 15-04-2015 20:36 2496336

Учиться придётся.
Использование параметров|аргументов в пакетном файле - Поиск в Google

GODolubOFF 20-04-2015 11:45 2498255

up тему.
нихрена все равно я не научился, то время что я уделил чтению сайтов по теме "Использование параметров|аргументов в пакетном файле", было потрачено зря.

Iska 21-04-2015 00:25 2498492

GODolubOFF, по части построения цельного мира за шесть:
Цитата:

Отправлено: 20:36, 15-04-2015
дней — это в церковь. Продолжайте регулярно уделять время, и всё у Вас получится.

GODolubOFF 24-04-2015 10:59 2500081

Цитата:

Цитата Iska
дней — это в церковь. Продолжайте регулярно уделять время, и всё у Вас получится. »

Я всё понял. 13к сообщений у вас не из-за того, что вы много помогаете, а из-за того, что много советуете) Помощь человека понимающего в этом деле, тут не так-то просто получить, хоть и находятся отзывчивые люди.

Iska 24-04-2015 13:15 2500155

Цитата:

Цитата GODolubOFF
Я всё понял. »

Сейчас проверим. Есть ли жизнь на Марсе?

Цитата:

Цитата GODolubOFF
13к сообщений у вас не из-за того, что вы много помогаете, а из-за того, что много советуете) »

Всё, Вы меня разоблачили. Пойду застрелюсь.


Цитата:

Цитата GODolubOFF
Помощь человека понимающего в этом деле, тут не так-то просто получить, хоть и находятся отзывчивые люди. »

Помощь — завсегда пожалуйста. Халява — в другом месте. «нихрена все равно я не научился» и «время … было потрачено зря» — это констатация факта, а не вопрос.

P.S. И, да — «царских путей в геометрии нет».

sov44 03-01-2016 17:25 2590803

Косвенно наверное в тему.
Нужна помощь. Не удаётся батником создать текстовый файл такого содержания
Код:

AutoInstall1="fm5:%%P:hidcon:cmd /c \"@echo off& for %a in (6.2,6.3,6.4) do (ver|>nul find \"%a\" && set flg=1)&& if defined flg (FP_min.cmd) else (FP_max.cmd)\""

Georgio 03-01-2016 19:46 2590847

Код:

echo AutoInstall1="fm5:%%%%P:hidcon:cmd /c \"@echo off^& for %%a in (6.2,6.3,6.4) do (ver^|^>nul find \"%%a\" ^&^& set flg=1)^&^& if defined flg (FP_min.cmd) else (FP_max.cmd)\"">"example.txt"

sov44 03-01-2016 20:30 2590855

Georgio, благодарю! А как привести к виду
Код:

(
echo Autoinstall1=...
)>example.txt

Вариант вида
Код:

@echo off
setlocal enabledelayedexpansion

(
echo AutoInstall1="fm5:%%%%P:hidcon:cmd /c \"@echo off^& for %%a in (6.2,6.3,6.4) do (ver^|^>nul find \"%%a\" ^&^& set flg=1)^&^& if defined flg (FP_min.cmd) else (FP_max.cmd)\""
)>example.txt

почему-то не срабатывает, в идеале нужно именно в таком виде, так как это кусок большого кода. Мои извинения, что не указал этот нюанс в посте-просьбе.

upd решил экранированием скобок
Код:

@echo off
setlocal enabledelayedexpansion


(
echo AutoInstall1="fm5:%%%%P:hidcon:cmd /c \"@echo off^& for %%a in ^(6.2,6.3,6.4^) do ^(ver^|^>nul find \"%%a\" ^&^& set flg=1^)^&^& if defined flg ^(FP_min.cmd^) else ^(FP_max.cmd^)\""
)>example.txt



Время: 00:39.

Время: 00:39.
© OSzone.net 2001-