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

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

_Stomatolog 15-09-2014 17:53 2403163

Создание bat файлов
 
В общем:
1) имеет текстовый файлик с такими строками(каждое название на новой строчке)
m&m's 130 гр с арахисом
m&m's 130 гр с молочным шоколадом
m&m's 45 гр с арахисом
m&m's 45 гр с молочным шоколадом
Американо
...
2)необходимо создать n-ное кол-во файлов(сколько строк,сток и файлов) с содержанием
файл1) @echo off

(echo Ваш заказ принят& echo Среднее время ожидания-5 минут)| msg *

Chcp 1251
sent Reseption "m&m's 130 гр с арахисом"
sent Kassa "m&m's 130 гр с арахисом"
cls

файл2) @echo off

(echo Ваш заказ принят& echo Среднее время ожидания-5 минут)| msg *

Chcp 1251
sent Reseption "m&m's 130 гр с молочным шоколадом"
sent Kassa "m&m's 130 гр с молочным шоколадом"
cls
ну и т.д.

То есть брать каждую строчку и на основе её создавать батник,в котором меняются только 2 строчки sent(в кавычки и вставлять строку)
Название батников брать с этой же строчки
P.S. сделал бы всё и ручками,только вот этот "бар"(это вообще такая фича на работе) содержит почти 1000 наименований:)
Заранее спасибо!

Elven 16-09-2014 14:41 2403490

как-то так например
Код:

for /f "delims=" %%i in (spisok.txt) do (
echo @echo off > "%%i.cmd"
echo ^(echo Ваш заказ принят^& echo Среднее время ожидания-5 минут^)^| msg * >> "%%i.cmd"
echo Chcp 1251 >> "%%i.cmd"
echo sent Reseption "%%i" >> "%%i.cmd"
echo sent Kassa "%%i" >> "%%i.cmd"
echo cls >> "%%i.cmd"
)

spisok.txt файл где хранится список вышеуказанной бурды.

Iska 16-09-2014 16:02 2403514

Первое перенаправление:
Цитата:

Цитата Elven
Код:

echo @echo off >> %%i.cmd
»

лучше в виде перезаписи, т.е., не «>>», а «>». А то второй раз запустят и…

Elven 16-09-2014 16:46 2403530

Цитата:

Цитата Iska
лучше в виде перезаписи, т.е., не «>>», а «>». А то второй раз запустят и… »

ну или del /f /q %%i.cmd перед первым перенаправлением
подкорректировал.

gora 16-09-2014 17:33 2403538

Цитата:

Цитата _Stomatolog
m&m's 130 гр с арахисом »

Коллеги, а вас не смущает наличие спец символов в строках, возможно и другие еще есть!?
А вообще, создание файлов в имени которых будут спец символы, пробелы и кириллица - решение не вызывающее у меня одобрения. :( IMHO

Elven 16-09-2014 18:00 2403545

Цитата:

Цитата gora
Коллеги, а вас не смущает наличие спец символов в строках, возможно и другие еще есть!? »

пока они находятся в кавычках - нет.
Цитата:

Цитата gora
А вообще, создание файлов в имени которых будут спец символы, пробелы и кириллица - решение не вызывающее у меня одобрения. »

Мне тоже не ахти как нравится, но требований к именам файлов не предъявлялось вообще никаких. Впрочем ничто не мешает присваивать им порядковые номера из отдельной переменной или вовсе выдавать рандомные, благо совсем рядом этот вопрос решался.

gora 16-09-2014 18:06 2403550

Цитата:

Цитата Elven
пока они находятся в кавычках - нет. »

В Вашем же коде эта строка находится в переменной %%i.cmd которая не заключена в кавычки. :(

Elven 16-09-2014 18:33 2403560

А я и не знал что Windows религия не позволяет создавать файлы с пробелами в названии.
Цитата:

Цитата gora
В Вашем же коде эта строка находится в переменной %%i.cmd которая не заключена в кавычки. »

только ради Вашего спокойствия - подправил. Но, повторюсь, файл с названием "m&m's 130 гр с молочным шоколадом.cmd" таки ни разу не комильфо, и такой вариант был вставлен только из-за отсутствия требований к имени файла.

Iska 16-09-2014 20:39 2403591

Цитата:

Цитата gora
Коллеги, а вас не смущает наличие спец символов в строках, возможно и другие еще есть!?
А вообще, создание файлов в имени которых будут спец символы, пробелы и кириллица - решение не вызывающее у меня одобрения. IMHO »

Кириллица — нет. А вот по остальному — да. Встретится в тексте что-нибудь наподобие «Бла-бла-бла: два-в-одном» или «Бла-бла-бла — 1 и 1/2 меры» — и всё, «приплыли».

_Stomatolog 19-09-2014 09:50 2404715

Для начала,спасибо всем
А теперь по делу:решение не ах-кирилицу не берет,а она нужна(выдает вариант типа "Ї№■ё ўрщ ёю тъєёюь *уюф 0,5 ы..cmd"),что совсем не гуд :o
На счет спец символов-берет нормально(m&m's 45 уЁ ё рЁрїшёюь.cmd)

Вот есЧе маленький вопросик(извените за банальность,но "моя не совсем дружит со всеми этими .cmd и .bat)-возможно ли вообще скрыть окно батника?(т.е. при работе "батника" пользователю выдается сообщение "Ваш заказ принят Среднее время ожидания-5 минут",а вот окошко выполнения команды видно-можно его как нибудь скрыть?)

Elven 19-09-2014 10:30 2404724

Цитата:

Цитата _Stomatolog
решение не ах-кирилицу не берет »

Если исходный текстовый файл будет в кодировке UTF-8 - возьмет.

Цитата:

Цитата _Stomatolog
возможно ли вообще скрыть окно батника? »

более кошерных способов не знаю, для скрывательства использую такой:

Код:

Set oShell = Wscript.CreateObject("WScript.Shell")
CommandLine = "%COMSPEC% /c m&m's 130 гр с арахисом.cmd"
oShell.Run CommandLine, 0, 0

соответственно подставляем название cmd какое нужно и сохраняем файл как .vbs

Iska 19-09-2014 10:31 2404727

Цитата:

Цитата _Stomatolog
А теперь по делу:решение не ах-кирилицу не берет,а она нужна(выдает вариант типа "Ї№■ё ўрщ ёю тъєёюь *уюф 0,5 ы..cmd"),что совсем не гуд »

_Stomatolog, файл должен быть в кодировке OEM/866.

Цитата:

Цитата _Stomatolog
а вот окошко выполнения команды видно-можно его как нибудь скрыть?) »

«Как-нибудь» — можно. Но зачем? Это на что-то влияет?

Цитата:

Цитата Elven
будет в кодировке UTF-8 »

Зачем?

Elven 19-09-2014 10:42 2404733

Цитата:

Цитата Iska
Зачем? »

Да как-то постоянно в этой кодировке пишу и проблем не наблюдаю. Просто вопрос привычки, пожалуй.

Iska 19-09-2014 12:31 2404789

Цитата:

Цитата Elven
Да как-то постоянно в этой кодировке пишу и проблем не наблюдаю. »

Пока Вы не используете кириллицу.

Elven 19-09-2014 14:33 2404841

Цитата:

Цитата Iska
Пока Вы не используете кириллицу. »

В том-то и дело, что кириллица там имеет место быть, откровенно говоря даже не задумывался над проблемой пока Вы не обратили на нее внимание.

Iska 19-09-2014 15:53 2404878

Elven, упакуйте пару-тройку Ваших пакетных файлов с кириллицей, которая «там имеет место быть» в архив и приложите к сообщению. Хочу посмотреть.

Elven 19-09-2014 16:20 2404893

Вложений: 1
да пожалуйста.

Iska 19-09-2014 16:28 2404898

Вот потому и:
читать дальше »
Цитата:

Код:

╔═════════════ C:\Песочница\054\oszone ═══════╤═════╗
║и            Имя            │Размер│  Дата  │Время║
║⌂..                          │ Вверх│19.09.14│16:27║
║►m&m's 45 ╨│╤А ╤Б ╨╝╨╛╨╗╨╛╤З╨}  279│19.09.14│16:27║
║►m&m's 45 ╨│╤А ╤Б ╨░╤А╨░╤Е╨╕╤}  241│19.09.14│16:27║
║►m&m's 130 ╨│╤А ╤Б ╨╝╨╛╨╗╨╛╤З}  281│19.09.14│16:27║
║►spis1                    cmd│  319│19.09.14│15:14║
║ spisok                  txt│  181│19.09.14│15:16║
║►я╗┐m&m's 130 ╨│╤А ╤Б ╨░╤А╨░╤}  249│19.09.14│16:27║
║                            │      │        │    ║
║                            │      │        │    ║



Работать желательно всегда с OEM/866.

Elven 19-09-2014 16:33 2404899

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

Iska 19-09-2014 16:41 2404903

Попробуйте ещё раз из того архива, что Вы выложили.

Elven 19-09-2014 18:24 2404933

Какой-то полтергейтс. Пробовал, нормально все было (именно из архива). Понадобилось по некоторым причинам перезагрузиться, после перезагрузки - привет от кельтов. :/

_Stomatolog 19-09-2014 21:49 2405005

Спасибо всем,кто откликнулся,проблема решена!Помогли очень сильно!


Время: 09:53.

Время: 09:53.
© OSzone.net 2001-