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

Компьютерный форум 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

 

Аватара для gora

Ушёл из жизни


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

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


Цитата Hardip:
вывести на экран ещё 2 аргумента »
просто вывести на экран все аргументы можно так:
Файл Hardip.bat :
Код: Выделить весь код
@Echo Off
Echo %*
Pause>Nul
Файл для проверки запуска HardipStart.bat:
Код: Выделить весь код
@Echo Off
Hardip.bat "1 param" "2 param" "3 param" "4 param" "5 param" "6 param" "7 param" "8 param" "9 param" "10 param" "11 param" "12 param"
Это сообщение посчитали полезным следующие участники:

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



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

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


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


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

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


Цитата gora:
просто вывести на экран все аргументы можно так: »
Да, это я уже прочитал)) Я неверно выразился - они должны быть не только видны, но и ещё используемы! Это реально?
Ещё я вот нашёл:
Цитата:
Работа более чем с 10 пакетными параметрами Команда shift также может быть использована для создания пакетных программ, воспринимающих более 10 параметров. В командной строке такой программы можно задать более 10-ти параметров, при этом все параметры, следующие за десятым (то есть за переменной%9) будут последовательно помещены в эту переменную %9.
Но не понял, её ведь не просто надо ввести, она определяет именно сдвиг..

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


Аватара для gora

Ушёл из жизни


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

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


Цитата Hardip:
они должны быть не только видны, но и ещё используемы! Это реально? »
Реально.
Напишите, как Вы хотите их использовать? Присвоить переменным, запустить по очереди некий файл с каждым из 12-ти параметров?

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


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


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

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


Допустим хочу сделать так, копировать файл с параметрами. Делаю:
Код: Выделить весь код
test.bat /a /p /v /c /f /l /h /k /j /w /y
- для запуска из командной строки
Код: Выделить весь код
xcopy test.bat test2.bat %1 %2 %3 %4 %5 %6 %7 %8 %9 Echo %*
- а вот что написано в самом файле. Он соответсвенно после 9 обрезает..
Грубо - надо чтобы делал действия с параметрами более 11, и выводил на экран. Читал тут
HTML код: Выделить весь код
http://www.windowsfaq.ru/content/view/77/57/


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


Аватара для gora

Ушёл из жизни


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

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


А так?
Код: Выделить весь код
xcopy test.bat test2.bat %*
Это сообщение посчитали полезным следующие участники:

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


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


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

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


Да! Спасибо огромное! А символы %* получается выводят все команды?
А допустим, если нужно ввести только опреденное число команд от ( ну там от 4 до 11), а свыше чтобы выдал ошибку?
Код: Выделить весь код
IF NOT ERRORLEVEL 1 ECHO Успешно!
Так вот для ошибок? А вот с параметрами как?

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


Аватара для gora

Ушёл из жизни


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

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


Цитата Hardip:
А символы %* получается выводят все команды? »
%* - все параметры командной строки.
Пример Hardip.bat для вывода 12-ти параметров с использованием Shift
Код: Выделить весь код
@Echo Off
Echo %1
Echo %2
Echo %3
Echo %4
Echo %5
Echo %6
Echo %7
Echo %8
Echo %9
Shift
Echo %9
Shift
Echo %9
Shift
Echo %9
Pause>Nul
Это сообщение посчитали полезным следующие участники:

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


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


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

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


А вот для провери, что параметров более 11? Ведь я читал, что как то можно взять результат выполнения предыдущей команды?
Вида
Код: Выделить весь код
FOR /L %переменная IN (начало,шаг,конец) DO
for /l %1 in 1,1,11 do
Как-то так..

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


Аватара для gora

Ушёл из жизни


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

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


Цитата Hardip:
нужно ввести только опреденное число команд от ( ну там от 4 до 11), а свыше чтобы выдал ошибку? »
Код: Выделить весь код
@Echo Off
Echo %4
Echo %5
Echo %6
Echo %7
Echo %8
Echo %9
Shift
Echo %9
Shift
Echo %9
Shift
Set t=%9
If Defined t Echo Error. Param 12 exist
Pause>Nul

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



Компьютерный форум 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




 
Переход