|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Обработка ключей запуска CMD- файла |
|
|
CMD/BAT - [решено] Обработка ключей запуска CMD- файла
|
Старовер Сообщения: 1708 |
Привет гуру (или гурам?)! В общем привет!
Сделал я такой скриптик - http://forum.oszone.net/thread-141480.html Даже GUI ваяем. Встал вопрос о ключах для командной строки. У меня они организованны убого - по одному ключу (ну еще + 1 опцию) за раз обрабатывается. Вот код: То есть, чтобы выполнить 2 команды надо 2 раза запустить скрипт А конечно охота сразу все указывать Я сделал как мог, дабы не усложнять скрипт и себе жизнь. Но может кто подскажет чего ? ![]() |
|
------- Отправлено: 00:34, 10-12-2009 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Как раз так будет заметное усложнение логики. Наиболее просто реализуется вариант с парами ключ/значение:
Пример вызова: Ключи могут повторяться, перемежаться; главное — чтобы не нарушалось правило «на каждый ключ одно значение». Другой вариант — ещё один ключ, например «-list», задающий имя текстового файла, содержащего те же самые пары «ключ/значение», например, в виде: При нахождении данного ключа в командной строке пакетного файла вызывается процедура его разбора посредством «for /f» и далее делается либо то же самое сравнение, что в предыдущем примере, либо пакетный файл вызывает самого себя, передавая аргументами пару «ключ/значение», заданные в очередной строке текстового файла, наподобие: Пример вызова:Усложнённый пример вызова, с перемежением обычных ключей и ключа «-list»: |
Отправлено: 04:19, 10-12-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 04:26, 10-12-2009 | #3 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать volk1234, не вижу смысла в разборе параметров, которые используются для именования процедур:
Цитата volk1234:
![]() |
|
Отправлено: 06:01, 10-12-2009 | #4 |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать amel27
Эмм.. не понял ![]() |
|
------- Отправлено: 15:45, 10-12-2009 | #5 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать volk1234, один параметр - одна процедура. FOR перебирает все и вызывает их по очереди
|
Отправлено: 16:07, 10-12-2009 | #6 |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 21:36, 10-12-2009 | #7 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Цитата volk1234:
Вместо написать так и выполнять нужный в зависимости от выбора, ведь опция -do пустая, сама по себе не делает никаких действий? |
|
------- Отправлено: 23:45, 10-12-2009 | #8 |
Старовер Сообщения: 1708
|
Профиль | Отправить PM | Цитировать Как то непривычно, старался сделать как в других программках.
Вспомнил - просто не знал как реализовать в принципе обработку ключей - поэтому решил ограничится 2 уровнями - на первом ключи одноуровневые - где переход осуществляется сразу, -ms, -full,-unlockall. А также ключи -do -l -un при обработки которых переход осуществлялся во вторую функцию(метку) где и обрабатывался второй ключ. Пока не совсем предщставляю как реализовать например обработку doreg1 255 |
------- Отправлено: 10:54, 11-12-2009 | #9 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата volk1234:
@Echo Off Set $I=0& For %%i In (%*) Do Set $P=%%i& Call :CMD_PARSE For /F "Tokens=1* Delims==" %%i In ('Set $_') Do Call :%%j Exit /B :DOREG1 Echo DOREG1 %* GoTo :EOF :DOREG2 Echo DOREG2 %* GoTo :EOF :CMD_PARSE If /I "%$P:~0,2%"=="do" Set /A $I=%$I%+1 Call Set $_%$I%=%%$_%$I%%%%$P% GoTo :EOF |
|
Отправлено: 12:36, 11-12-2009 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Помогите запустить CMD-файл из CMD-файла с параметрами | Oleg48 | Скриптовые языки администрирования Windows | 2 | 18-11-2009 11:08 | |
CMD/BAT - [решено] вывод текстового файла на экран cmd | idsp | Скриптовые языки администрирования Windows | 6 | 06-04-2009 07:18 | |
[решено] Службы - Изменение типа запуска через CMD | vagner_HATE | Microsoft Windows NT/2000/2003 | 2 | 03-09-2008 06:31 | |
Помогите пожалуйста не срабатывает команда из*cmd файла запускаемого из RanOnceEx.cmd | vovchiku | Автоматическая установка Windows 2000/XP/2003 | 6 | 25-09-2007 23:38 | |
Обработка лог-файла на C++ | Guest | Программирование и базы данных | 17 | 23-03-2004 01:11 |
|