Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Shift

Ответить
Настройки темы
CMD/BAT - [решено] Shift

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток всем! Выполняю bat-ник, его старт происходит с 11 аргументами. Почитал по поводу Shift. но не до конца понял.
Код: Выделить весь код
cls 
SHIFT  start %1 %2 %3 %4 %5 %6 %7 %8 %9 cmd.exe
echo File %0 with param %1 %2 %3 %4 %5 %6 %7 %8 %9
Мне для того чтобы вывести на экран ещё 2 аргумента, что нужно сделать?

Отправлено: 10:41, 21-11-2010

 

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата gora:
свыше чтобы выдал ошибку? »
Свыше и ниже Т.е. от 2 до 14 ил как я выше писал от 4 до 11.
Может я что-то не понимаю? Делаю так - Hardip.bat
Код: Выделить весь код
@Echo Off
xcopy test.bat test2.bat
Echo %1 %2 %3 %4 %5 %6 %7 %8 %9
Shift
Echo %9
Shift
Echo %9
Shift
Set t=%9
If Defined t Echo Error. Param 11 exist
Pause>Nul
И запускаю в строке
Код: Выделить весь код
test.bat /a /p /v /c /f /l /h /k /j /w /y
Но он явно не выполнеят команд несколько, т.к. допустим тут
Код: Выделить весь код
xcopy test.bat test2.bat %*
он выполняет приглашение - /p, а в Hardip.bat его уже нету.

Отправлено: 13:19, 21-11-2010 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата Hardip:
как я выше писал от 4 до 11 »
Код: Выделить весь код
@Echo Off
Set t=%4
If Not Defined t Echo Ошибка, параметров менее 4-х& Pause>Nul& Exit
Set var4_11=%4 %5 %6 %7 %8 %9
Shift
Set var4_11=%var4_11% %9
Shift
Set var4_11=%var4_11% %9
Shift
Set t=%9
If Defined t Echo Ошибка, параметров более 11-ти& Pause>Nul& Exit
Echo Запуск с параметрами %var4_11%
xcopy test.bat test2.bat %var4_11%
Pause>Nul
Будут переданы параметры начиная с 4-го до 11-й включительно.
Если нужно передавать с 1-го по 11-й , но запускать копирование только когда параметров от 4-х до 11-ти, то измените одну строку:
Код: Выделить весь код
Set var4_11=%1 %2 %3 %4 %5 %6 %7 %8 %9
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:15, 21-11-2010 | #12


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата gora:
Если нужно передавать с 1-го по 11-й »
Именно так как нужно! Огромная благодарность Вам! Теперь неделю разбираться буду)) А вот -
Код: Выделить весь код
%var4_11% %9
Устанавливает, что переменной var4_11 будет установлен Shift, назад на одну позицию? И If Defined t - превышено количество введенного?

Отправлено: 14:37, 21-11-2010 | #13


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата Hardip:
Код:
%var4_11% %9Устанавливает, что переменной var4_11 будет установлен Shift »
Нет.
Команда Set var4_11=%1 %2 %3 %4 %5 %6 %7 %8 %9 задает переменную var4_11 равной первым 9-ти параметрам ком. строки записанными через пробел.
Команда Shift сдвигает все переменные (%2 %3 %4 %5 %6 %7 %8 %9) и в переменной %9 оказывается 10-й параметр ком. строки.
Далее команда Set var4_11=%var4_11% %9 добавляет к переменной var4_11 этот 10-й параметр через пробел. И т.д...
Цитата Hardip:
И If Defined t - превышено количество введенного? »
Проверяет, определена ли переменная t, которая ранее была получена из последовательно сдвинутой переменной %9 и должна быть равна 12-му параметру ком. строки. Фактически проверяется наличие 12-го параметра, есть он - ошибка, нет - значит параметров менее 12-ти.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:02, 21-11-2010 | #14



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Shift

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Переключение языка ввода и по CTRL+SHIFT, и по ALT+SHIFT. Возможно? dzekka Microsoft Windows 2000/XP 5 26-08-2010 16:14
Need for Speed: SHIFT Anatoliy2004 Игры 38 11-05-2010 01:28
Разное - [решено] Смена раскладки клавиатуры как по Ctrl+Shift так и по Alt+Shift nghst Microsoft Windows 2000/XP 1 22-01-2008 10:34
Переключение раскладки по Shift+Shift Cubbie Microsoft Windows 2000/XP 3 10-09-2005 09:14
disable shift key vault dweller Вебмастеру 3 16-01-2003 15:35




 
Переход