бутафор
0 / 0 / 1
Регистрация: 05.10.2010
Сообщений: 43
|
||||||
1 | ||||||
Обработка списка параметров запуска пакетного файла06.03.2015, 20:49. Просмотров 2969. Ответов 16
Метки нет Все метки)
(
Добрый вечер. Помогите решить задачу, плиз. Нужно создать пакетный файл для запуска программ. Командные строки запускаемых программ передаются через параметры строки запуска пакетного файла. Количество параметров запускаемых программ заранее не определено. Например, запуск по очереди программ Edit, Dir и Mem, перечисленных со своими параметрами в командной строке запуска, как показано далее:
d:\work\x1.bat Edit f1.txt ; Dir d:\work ; Mem /d. Нашел на форуме похожую тему вот с таким кодом, но оно не работает:
0
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
06.03.2015, 20:49 |
Ответы с готовыми решениями:
16
Создание пакетного файла с использованием списка значений в качестве параметров.
Планирование запуска пакетного файла первого числа каждого месяца в 23:55 Проверка числа параметров и превращение пакетного файла в интерактивный Применение оператора IF для сравнения с определёнными строками параметров пакетного файла |
ComSpec
3409 / 1953 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
|
|||||||||||
06.03.2015, 22:47 | 2 | ||||||||||
![]() Решение
Код пакетного файла "x1.bat":
Командная строка для запуска на примере других команд (команды с параметрами заключаютя в двойные кавычки и разделяются пробелами):
Примечание: команду "dir D:\Work" заменил на более удобную в Вашем случае "cmd /c dir "D:\Work"".
3
|
olichka86
2 / 2 / 2
Регистрация: 29.10.2013
Сообщений: 80
|
|
24.05.2015, 22:24 | 3 |
Бьюсь над этой же задачей, один в один, видно, в одном и том же ВУЗе.
Дело в том, что если разделять их пробелами да группировать кавычками, проблемы с решением и правда нет. Но возможно ли решить эту задачу в примером, который в самой задаче задан: аргументы, разделенные ";"? Как то их распарсить? Пробовала через /F "delims=;" но не выходит ничего.
0
|
ComSpec
3409 / 1953 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
|
||||||
25.05.2015, 11:00 | 4 | |||||
3
|
olichka86
2 / 2 / 2
Регистрация: 29.10.2013
Сообщений: 80
|
|
25.05.2015, 11:43 | 5 |
Прошу прощение за настырность... но сделать батник универсальным и обработать неизвестное количество команд не выйдет никак, да?
С tokens=* не хочет работать. Пока вдохновилась самым первым примером и пытаюсь через temp и shift что-то создать вменяемое...
0
|
Dragokas
![]() ![]() |
||||||
25.05.2015, 12:33 | 6 | |||||
![]() Решение
"Мой" это код. И он работал нормально до тех пор, пока его кто-то не взял и не перековеркал.
Знаки ";" не передаются как отдельные аргументы (воспринимаются как разделитель), если только их не окружить кавычками. Для неограниченного числа разделителей:
3
|
olichka86
2 / 2 / 2
Регистрация: 29.10.2013
Сообщений: 80
|
|||||||||||||||||||||
26.05.2015, 12:16 | 7 | ||||||||||||||||||||
Вот спасибо-то! Все воскресенье убила на попытки понять, почему же оно не реагирует на мои if "%1" == ";". И еще бы полгода мучилась.
Добавлено через 1 час 39 минут Ребята, у меня почти получилось... Только я хотела еще, чтобы программа могла обрабатывать команды, разделенные, как в примере, точкой с запятой и пробелом. Сделала для этого второй цикл, и все бы хорошо, но ума не приложу, как склеить в итоге команду с параметрами...
Подаю на вход: P3.bat notepad P1.bat; notepad P3.bat; calc; dir d: Добавлено через 1 час 10 минут Свершилось! Оно рабооотает!)
Удаление ведущих пробелов.
Зато задача решена на 100% как в условии. Фух.
0
|
Dragokas
![]() ![]() |
|
26.05.2015, 12:31 | 8 |
Ваши примеры некорректны. Зачем что-то было добавлять, если выложенный код и так был самодостаточен.
Лидирующие пробелы не имеет смысла удалять, т.к. они ни на что не влияют. Этим Вы только лишний раз усложнили код.
1
|
olichka86
2 / 2 / 2
Регистрация: 29.10.2013
Сообщений: 80
|
|
26.05.2015, 16:38 | 9 |
Может быть и так, но когда я запускала Ваш код у себя с P3.bat notepad P1.bat; notepad P3.bat; calc; dir d:, мне выдавало следующее сообщение:
0
|
ComSpec
3409 / 1953 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
|
||||||
26.05.2015, 16:53 | 10 | |||||
![]() РешениеТакже добавьте "call":
2
|
olichka86
2 / 2 / 2
Регистрация: 29.10.2013
Сообщений: 80
|
|
26.05.2015, 16:58 | 11 |
Спасибо! Как все просто... А я-то левой пяткой правое ухо доставала)
0
|
AlinaGl
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 2
|
|
01.12.2015, 16:44 | 12 |
Добрый день! В универе выдали такое же задание, перепробовала много вариантов, перепробовала вышеописанные варианты, но ничего не работает...
Также нужно создать пакетный файл P3 для запуска программ. Командные строки запускаемых программ передаются через параметры строки запуска Р3. Количество параметров запускаемых программ заранее не определено. Например, запуск по очереди программ Edit, Dir и Mem, перечисленных со своими параметрами в командной строке запуска Р3, как показано далее: d:\work\d1>P3.bat Edit f1.txt ; Dir d:\work ; Mem /d Буду благодарна за любую помощь!
0
|
Summerty
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 5
|
|
01.12.2015, 17:03 | 13 |
0
|
vavun
9866 / 5235 / 802
Регистрация: 07.04.2013
Сообщений: 15,192
|
|
01.12.2015, 17:05 | 14 |
AlinaGl, Summerty, еще скажите одногруппники
![]()
0
|
Summerty
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 5
|
|
01.12.2015, 17:17 | 15 |
0
|
AlinaGl
0 / 0 / 0
Регистрация: 01.12.2015
Сообщений: 2
|
|
01.12.2015, 18:01 | 16 |
Да, БГУИР
![]() ![]()
0
|
Dragokas
![]() ![]() |
|
01.12.2015, 18:26 | 17 |
Тогда рассказывайте нам, каким образом Вы пробовали и почему решили, что не работает.
Добавлено через 2 минуты Предыдущий коллега вон тоже пробовал, даже успел заявил, что сломанный кем-то код так и был написан (мной).
0
|
01.12.2015, 18:26 | |
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
01.12.2015, 18:26 |
Ошибка при выполнении пакетного файла: "Недопустимое число параметров" Как в коде пакетного файла скрыть расположение исполняемого файла? Создание исполняемого файла на основе пакетного файла и копируемых им файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |