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

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

Ответить
Настройки темы
CMD/BAT - [решено] Помогите. несколько команд в одной строке cmd

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


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

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


не выполняется задача set selection=1
нужно запустить к исполнению вторую строку, если по истечению 10 секунд от пользователя не поступило никаких действий. Где я напутал и куда вставить /TIMEOUT 10 ?

SET /P selection="select the installation (1=script1, 2= script2.bat):" || set selection=1 /TIMEOUT 10
IF %selection%==1 start /wait cmd /c "C:\Windows\Software\Common\script1.bat"
IF %selection%==2 start /wait cmd /c "C:\Windows\Software\Common\script2.bat"

Данная комбинация содержится в .BAT и запускается из командной строки Windows.
Можете дать рекомендацию по правильному исполнению команды?

Отправлено: 10:20, 11-08-2015

 

Ветеран


Contributor


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

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


Цитата lopen:
куда вставить /TIMEOUT 10 ? »
lopen, никуда. «set /p» ждёт бесконечно долго. Используйте «choice» с параметром «/t» вместо «set /p»:

Choice
Choice - Accept user input | Windows CMD | SS64.com
Batch files - The CHOICE command
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:50, 11-08-2015 | #2



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

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


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


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

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


СПАСИБО!

Отправлено: 14:38, 11-08-2015 | #3


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


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

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


И снова здравствуйте.
Вот пример, того, что исполняю:
CHOICE /C:135 /T 900 /D 1
IF ERRORLEVEL 1 GOTO E1
IF ERRORLEVEL 3 GOTO E3
IF ERRORLEVEL 5 GOTO E5

При любом выборе выполняется значение по умолчанию, т.е. "1". Или CHOICE понимает только YNC? Но и при YNC выполняется только вариант №1. Где ошибка?

Посоветуйте, как правильно тестировать выполнение команд? Существует оболочка для теста .batch файлов?

Отправлено: 13:38, 17-08-2015 | #4


Ветеран


Contributor


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

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


lopen, А если прочитать справку?
Код: Выделить весь код
@echo off
setlocal

choice /c:135 /t 900 /n /m:"Make your choice: 1,3,5 > " /d 1

if %errorlevel% equ 1 echo 1
if %errorlevel% equ 2 echo 3
if %errorlevel% equ 3 echo 5
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:02, 17-08-2015 | #5


Ветеран


Contributor


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

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


Цитата lopen:
Посоветуйте, как правильно тестировать выполнение команд? »
Закомментировав «echo off».

Отправлено: 15:09, 17-08-2015 | #6


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


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

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


спасибо, прочитал, перепробовал много разных вариантов. Никак не получается.

При следующей комбинации и выбрав один вариант, всё равно исполняются всё равно оба. Как заставить работать либо setupE1.exe, либо setupE3.exe?

Совсем голову сломал.

@echo off
setlocal

choice /c:13 /t 900 /n /m:"Make your choice: 1,3 > " /d 1

if %errorlevel% equ 1 GOTO E1
if %errorlevel% equ 3 echo E3
ELSE GOTO EXIT

:E1
start /wait cmd /c C:\setupE1.exe

:E3
start /wait cmd /c C:\setupE3.exe

:EXIT
EXIT

Отправлено: 17:30, 18-08-2015 | #7


Ветеран


Contributor


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

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


lopen, Прочитайте еще раз внимательно:
Цитата:
Переменная среды ERRORLEVEL получает значение индекса
клавиши, соответствующей выбранному элементу. Первый элемент
в списке возвращает значение 1, второй - 2 и т.д.
У вас вместо значения errorlevel 2 стоит значение 3
Кроме того у вас после метки :E1 нет выхода из батника (exit /b или goto:eof), поэтому после этого блока выполнится код в метке :E3

Последний раз редактировалось Foreigner, 18-08-2015 в 18:29.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:17, 18-08-2015 | #8


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


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

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


Спасибо, вы добрейший человек.
Про индекс не знал, про выход не обратил внимание.
Сейчамс всё работает, как часы)

Отправлено: 11:30, 19-08-2015 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] как выполнить несколько команд при одном запуске PsExec JKQ Скриптовые языки администрирования Windows 3 18-06-2014 13:34
CMD/BAT - [решено] Загрузка файла из интернета посредством команд CMD volk1234 Скриптовые языки администрирования Windows 42 30-03-2014 12:16
CMD/BAT - [решено] Цветная роза с использованием только команд CMD Dragokas Скриптовые языки администрирования Windows 0 04-04-2013 00:30
CMD/BAT - [решено] Не выполняется команда если команд в батнике несколько dark-------13 Скриптовые языки администрирования Windows 3 26-04-2011 13:26
Службы - [решено] Полетели шрифты в командной строке cmd sztksales Microsoft Windows 2000/XP 3 21-12-2009 14:07




 
Переход