Команда Timeout — задать период ожидания.
Команда Timeout используется в командных файлах для организации режима ожидания фиксированного интервала времени в секундах, либо интервала до нажатия клавиши на клавиатуре.
Формат командной строки:
TIMEOUT [/T] таймаут [/NOBREAK]
Параметры командной строки:
/T таймаут — Время ожидания в секундах. Допустимый интервал: от -1 до 99999 секунд.
/NOBREAK — Игнорировать нажатия клавиш, ждать указанное время.
/? — Вывод справки по использованию.
Примечание: значение таймаута, равное -1 задает неограниченное время ожидания до нажатия клавиши.
TIMEOUT /? — отобразить краткую справку по использованию команды
TIMEOUT /T 10 установить режим ожидания 10 секунд. На экран выдается информационное сообщение с отсчетом оставшегося до завершения интервала времени ( 10, 9, 8 секунд . . . ):
Время ожидания 10 сек., нажмите любую клавишу для продолжения
Нажатие любой клавиши приведет к прерыванию таймаута и переходу к выполнению следующей команды.
TIMEOUT /T 300 /NOBREAK — установить интервал ожидания 300 секунд. Нажатие любых клавиш на клавиатуре игнорируется. Нажатие комбинации CTRL+C приведет к выдаче запроса:
Завершить выполнение пакетного файла [Y(да)/N(нет)]?
При ответе N(нет) выполняется завершение таймаута и переход к выполнению следующей команды командного файла. При ответе Y(да)/ — выполняется завершение командного файла. Вместо комбинации CTRL+C можно использовать CTRL+Break.
TIMEOUT /T -1 — ожидание нажатия любой клавиши. На экран выдается сообщение:
Нажмите любую клавишу для продолжения.
Если в данной команде использовать параметр /NOBREAK , то возможен ввод только комбинации CTRL+C
Как через командную строку нажать любую клавишу
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
Сообщения: 4
Благодарности: 0
Ситуация такая: выводится некоторая информация, для продолжения работы скрипта нужно нажать кнопку Enter, для выхода — любую другую. Choice тут не подходит, к сожалению.
Сообщения: 12426
Благодарности: 2328
| Конфигурация компьютера | |
| Процессор: Intel(R) Core(TM) i5-2300 CPU @ 2.80GHz | |
| Материнская плата: Gigabyte GA-H67MA-UD2H-B3 | |
| Память: Hynix HMT325U6BFR8C-H9 2x2Gb + Hynix HMT351U6BFR8C-H9 2x4Gb | |
| HDD: Hitachi HDS721010CLA332 | |
| Звук: Realtek ALC889 | |
| Блок питания: Asus 500W | |
| CD/DVD: Optiarc DVD RW AD-7201S ATA Device | |
| Монитор: Acer V243HQAbd | |
| ОС: Windows 7 Ultimate x64 SP1 RTM (6.1.7601) | |
| Индекс производительности Windows: 5,1 |
Enforcer7, есть такой вариант:
@echo off set /p end=Press ENTER to continue! if "%end%"=="" (goto cont) else (goto :eof) :cont
Сообщения: 4
Благодарности: 0
Morpheus, так я уже пытался извернутся. При нажатии на Enter мы действительно получим пустую переменную, а в противном случае консоль будет дожидаться, пока мы не завершим ввод переменной. Не совсем то, что нужно.
Сообщения: 27449
Благодарности: 8086
1. Вам обязательно реализацию встроенными средствами?
2. Простое «Y/N» в «choice.exe » — вместо «Enter/Any key» — Вас никак не устраивает?
3. Что скажете насчёт использования PowerShell?
Сообщения: 415
Благодарности: 257
Enforcer7, используйте утилиту hs_readkey из набора утилит hs_packet. В сети живой ссылки не нашел, поэтому залил вам на файлообменник. Сканкод Enter’а = 13.
Последний раз редактировалось Anonymоus, 27-04-2012 в 08:49 .
Сообщения: 4
Благодарности: 0
Конечно, хотелось бы решить эту проблему встроенными средствами. Все-таки не всегда получается использовать дополнительные утилиты.
Сообщения: 27449
Благодарности: 8086
Enforcer7, хотелось бы услышать ответы и на остальные вопросы (2 и 3).
Сообщения: 415
Благодарности: 257
Enforcer7, насчет использования только встроенных средств — скажите, а в этом самом батнике что-то обрабатывается в цикле? Т.е. он работает непрерывно, и нужно не прерывая его работы, ожидать нажатия enter? Если да, то вот такой вот демонстрационный образец:
@Echo Off If Exist "%temp%\stop.flag" Del "%temp%\stop.flag" :: Запуск второй копии внутри первой :: (для организации примитивного управления вторым запущенным процессом) If "%SelfStart%"=="" ( Set SelfStart=yes Start /B "" "%~nx0" GoTo ControlThread ) :: Именно тут крутится основной скрипт :WorkThread :: Ерунда со счетчиком в виде имитации полезной нагрузки Cls Set /A i+=1 Echo [%i%] Ping -n 2 127.0.0.1>nul :: А вот тут проверка на наличие файла, дающего сигнал о выходе :: Естественно, что вместо выхода можно совершать любое нужное действие, главное - :: время от времени опрашивать наличие файла, что совсем не блокирует работу :: основного скрипта ожиданием ввода от пользователя If Exist "%temp%\stop.flag" Exit GoTo WorkThread :: Создание файла завершения работы по нажатию Enter :ControlThread Set Input= Set /P Input= If "%Input%"=="" (Echo.>"%temp%\stop.flag") Else (GoTo ControlThread) Exit
Как послать нажатие клавиши через командную строку?
Здравстсвуйте, добрый денёкъ, свободная минутка. Пишу вам письмо любезные линуксозаводчкики, и линкукоразводители. Давеча, поставилъ xbindkeys, посмотрелъ xev покормилъ nano ~/.xbindkeysrc после чего заработалъ запускъ счёт по control+/ , чему я признаться весьма сильно радъ. Но почему то не заработало по правой клавише win и / . Отчего такъ?
И вотъ посему, родилась у меня идея, как бы по комбинации «rwin + п» посылись бы значитъ следующие буквы «Приветствую, доброго здоровьичка!» въ любое изъ запущенныхъ приложений, соответственно находящихся въ фокусе!
Какъ это сотворить?

Tam-Tam
20.06.12 20:19:58 MSK
боюсь предположить, но твой текст с твердым знаком после согласных, случайно не является следствием освоения xbindkeys?
Ответ на твой вопрос: xbindkeys + xvkbd.
chinarulezzz ★★
( 20.06.12 20:25:23 MSK )
Только через xcompose. Потому, что xvkbd, который посоветовал предыдущий оратор, не дружит с юникодом/кириллицей.
x3al ★★★★★
( 20.06.12 20:43:08 MSK )
Ответ на: комментарий от chinarulezzz 20.06.12 20:25:23 MSK

Ставилъ xvkbd что то не понялъ какъ имъ пользоваться. Я бы ещё хотел ять на клавишу либо сontrol+я либо просто rwin забить.
Мне больше нравиться неизвращённый большиками русский языкъ. Хотя к сожалению я его пока слабо знаю.
Tam-Tam
( 20.06.12 20:44:02 MSK ) автор топика
Ответ на: комментарий от x3al 20.06.12 20:43:08 MSK

Вообще было бы очень хорошо, если бы можно было ещё ударение в словахъ ставить, ибо зАмок и замОк это разные вещи. Иногда происходитъ непонимание изъ за этого.
Tam-Tam
( 20.06.12 20:45:41 MSK ) автор топика
Ответ на: комментарий от Tam-Tam 20.06.12 20:45:41 MSK
Советую. Но оно работает немного не так: compose-клавиша нажимается перед чем-то, как dead-key, а не как модификатор.
Можно поставить на compose- любой уникодный символ (включая ударение и ять, пример по ссылке), слово (например, УМВР), предложение (Съешь ещё этих мягких французских булок да выпей чаю) без лимита на количество комбинаций (я как-то делал ~5000 комбинаций, реализуя wubizixing-ввод китайского и оно работало без заметных на глаз тормозов).
И да, если кому-нибудь не лень, запилите статью по xcompose в лоровики.
Ctrl и Command: Как стереть разницу в клавишах между Mac и Windows
О простой идее, которая в хорошем смысле взорвала мой мозг. Будет актуальна для тех, кто параллельно использует обе платформы и спотыкается о Ctrl и Command. Например, разворачивает меню Пуск при попытке что-то скопировать.
Спойлер: Я решил проблему тем, что поменял назначение клавиш Ctrl и Win между собой. Это позволяет зажимать команду Ctrl + C большим и указательным пальцами, так же как на Маке. При этом используется физическая клавиша Win.
Вдруг нелюбимый Windows-компьютер становится послушным как любимый Мак: начинает работать моторная память. Десятки клавиш, которые я использую на Маке, оживают на Windows. Офигенное чувство.
Я использую классическую беспроводную клавиатуру Apple Keyboard A1314 на Windows-моноблоке Acer. В такой конфигурации клавиша Cmd работает на Windows как Win. Описанный в статье лайфхак можно проделать с любой другой клавиатурой.
История вопроса
В мире Windows функцию клавиши Cmd имеет Ctrl и мы не задумываемся, почему это так.
В мире Маков горячие клавиши как правило начинаются на Сommand: Cmd + C копирует, Cmd + V вставляет, Cmd + Z отменяет. Удачная схема, которая позволяет делать действия одной лишь левой рукой, не убирая правую с мыши. Так было с 1983 года, когда эта концепция впервые появились в предшественнике Macintosh, компьютере Apple Lisa.
В ранних версиях Windows в качестве стандарта клавиш использовался Common User Access, разработанный IBM в 1987. В нём были описаны такие клавиши как Ctrl, Alt, Delete, Insert, F1 и другие. В создании Lisa Apple сразу ориентировалась на графический интерфейс (GUI), в то время как перед IBM стояла задача посложнее: CUA должен был поддерживать старые консольные интерфейсы, а не только новые графические. Логично, что в стандарте IBM не было клавиши Cmd. На заре эры Windows компьютеры Macintosh были бешено популярны, а схема Cmd+С/V стала общепринятой и горячо любимой. Microsoft тогда поддержали закрепившийся паттерн, переложив функцию Cmd на максимально похожий на него Ctrl.
В 1994 году Microsoft выпустили первую клавиатуру, в которой появилась клавиша Start — Microsoft Natural Keyboard. Start потом переименовали в Win, поскольку на кнопке был лого Windows. И расположена эта клавиша как раз там, где должен быть Cmd.
В центре архитектуры Windows реет флаг меню Пуск — важнейшей начальной точки взаимодействия, главного меню системы, которое столь знакомо и понятно с первого клика. Решение отдать ему целую клавишу вполне оправдано. Но я считаю само расположение кнопки ужасной ошибкой, потому что моторные привычки миллионов людей, кто работал на Макинтошах были проигнорированы.
Важная модифицирующая кнопка Ctrl уехала в левый угол, удалившись от буквZ-C-V, а следовательно, нажать Ctrl + C большим и указательным, не выгибая руку, не получится. Клавиша Win — не модифицирующая, а исполняющая команду. Это значит, ей не обязательно быть рядом с буквенными клавишами. Ей подошло бы место в правом углу, ровно там где меню Пуск находится на экране. Но дизайнеры из консалтинга Ziba Design, которые разрабатывали концепцию этой клавиатуры для Майкрософта, были настолько увлечены игрой с эргономичной формой, что упустили из виду настоящую эргономику и унификацию.
Позже Apple позаботилась о том, что если подключить любую клавиатуру с клавишей Win в Мак, она будет восприниматься как Cmd. Если подключить маковскую клавиатуру в PC, клавиша Cmd будет работать как Win. Ловушка захлопнулась: Ctrl и Сmd безвозвратно стали разными клавишами.
Исправляем древнюю нестыковку
Я воспользовался бесплатным приложением SharpKeys, которое позволяет переназначить функции клавиш на клавиатуре. Оно прописывает нужную настройку в реестр Windows. Протестировано на Windows 10.
Можно пойти двумя путями: либо настроить функции клавиш вручную, либо загрузить мой файл с готовыми настройками и применить их.
Качаем, ставим и открываем SharpKeys. Красотой не блещет, но функцию выполнит.
Вариант 1: настраиваем вручную
1. Нажимаем Add и в открывшемся окне видим два столбца: Map this Key и To this Key.
2. Кликаем Type Key в правом столбце, нажимаем Win на клавиатуре.
- Кликаем Type Key в левом столбце, нажимаем Ctrl. Закрываем окно, так мы описали функцию клавиши Win.
- Теперь делаем то же самое для Ctrl.
- По дороге можно настроить, где должна быть клавиша PrintScreen (F11)и Delete (F12). На компактных маковских клавиатурах нет Delete, а в условиях Windows она необходима.
- В основном окне нажимаем кнопку Write to Registry.
Вариант 2. загружаем настройки клавиш из файла .skl
SharpKeys позволяет сохранить заранее настроенные клавиши в файл сmd-fix.skl, который я выложил в телеграм-канал.
После любого из вариантов перезагружаемся.
После этого навсегда забываем про то, что Ctrl было неудобно нажимать.
Я веду телеграм-канал /designer об интерактивном дизайне, инструментах и проектировании.