![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Обработка параметров и ключей запуска меток BAT-файла |
|
CMD/BAT - Обработка параметров и ключей запуска меток BAT-файла
|
Новый участник Сообщения: 3 |
Продолжение темы
Создал маленький BAT файл для выполнения разных задач с глобальными, локальными параметрами и ключами. Исходный код run.bat: @echo off setlocal EnableDelayedExpansion EnableExtensions rem ============================================================================= set $D=1 for %%i in (%*) do call:parse %%i call:MAIN if %$D% GTR 1 call:parse_do goto:eof rem Functions :parse set $P=%~1 if /I "%$P:~0,1%"=="-" if %$D% EQU 1 for /f "delims=: tokens=1,2" %%f in ('echo.%$P%') do call:parse_set %%f %%g if /I "%$P:~0,1%"=="/" if %$D% EQU 1 set KEY_%$P:~1%=1 if /I "%$P:~0,1%"=="-" if %$D% GTR 1 call:parse_do_p %$P:~1% if /I "%$P:~0,1%"=="/" if %$D% GTR 1 call:parse_do_k %$P:~1% if /I not "%$P:~0,1%"=="-" if /I not "%$P:~0,1%"=="/" set /a $D+=1& set $DO_%$D%=%$P% goto:eof :parse_do set /a $_D=$D-1 for /l %%i in (1,1,%$_D%) do ( setlocal if /I not "!$DO_%%i_P!"=="" call:parse_do_set_p !$DO_%%i_P! if /I not "!$DO_%%i_K!"=="" call:parse_do_set_k !$DO_%%i_K! call:!$DO_%%i! endlocal ) goto:eof :parse_do_p set /a $_D=$D-1 set $DO_%$_D%_P=%~1,!$DO_%$_D%_P! goto:eof :parse_do_k set /a $_D=$D-1 set $DO_%$_D%_K=%~1,!$DO_%$_D%_K! goto:eof :parse_set set $F=%1& set $G=%~2 set %$F:~1%=%$G% goto:eof :parse_do_set_p for %%i in (%*) do ( set $VAR=%%i for /f "delims=: tokens=1,2" %%f in ('echo.!$VAR!') do call:parse_set -%%f %%g ) goto:eof :parse_do_set_k set KEY_%1=1 goto:eof :help echo.Start batch script with global parameters and key, call label with local parameters and key. echo. echo.Syntax: echo. run.bat [-global_parameters:"value"] [/global_key] [label] [[-label_parameters:"value"] [/label_key]] echo. echo.Format: echo. echo. Global_parameters - Set global parameters with value. -parameter1:"value1" echo. Global_key - Set parameter with value 1. /key1 echo. Label - Call label in batch script. do1 echo. Label_parameters - Set label parameter value. -parameter2:"value2" echo. Label_key - Set local parameter with value 1. /key2 echo. echo.Example: echo. echo. run.bat -par1:val1 /key1 do1 -par2:"va l2" /key2 do2 /key3 echo. echo.Help: echo. echo. run.bat help echo.& pause& exit rem ============================================================================= rem MAIN :MAIN echo.Start Global sctipt, if there is no set labels in shell. echo.key_key1==%KEY_key1% echo.par==%par% goto:eof rem do1 :do1 echo.Run DO1 echo.key_key2==%KEY_key2% echo.par==%par% goto:eof rem do2 :do2 echo.Run DO2 echo.key_key3==%KEY_key3% echo.par==%par% goto:eof Результат: Start Global sctipt, if there is no set labels in shell. key_key1==1 par==val1 Run DO1 key_key2==1 par==va l2 Run DO2 key_key3==1 par==val1 |
|
Отправлено: 16:12, 21-05-2012 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - обработка текстового\xml файла | firstarey | Скриптовые языки администрирования Windows | 1 | 14-05-2012 07:03 | |
CMD/BAT - [решено] Обработка ключей запуска CMD- файла | volk1234 | Скриптовые языки администрирования Windows | 28 | 20-12-2009 21:46 | |
Проверка параметров запуска скрипта | morgan1991 | AutoIt | 2 | 03-03-2009 00:43 | |
Обработка лог-файла на C++ | Guest | Программирование и базы данных | 17 | 23-03-2004 01:11 |
|