Я уже около 30 минут пытаюсь выяснить, как установить ограничение по времени для «set /p» в пакетном режиме, но так и не могу понять, как это сделать.
set /p example=
Я хочу, чтобы этот код завершался, если после активации прошло 3 секунды, а пользователь ничего не ввел.
решение1
Команда SET не очень хорошо приспособлена для такого использования, и пользователь Джефф Цейтлин в своем комментарии предложил другую команду, которая действительно ограничивает время.
Если вы все же хотите использовать команду SET, то для этого потребуются два пакетных файла, как показано ниже:
- Удалить определенный временный файл, запустить Batch два, подождать некоторое время, затем убить Batch два. Если временный файл теперь существует, то его значение может быть использовано.
- Ожидайте ввода и сохраняйте его в этом временном файле. Если он будет убит до получения ввода, то файл не будет существовать.
Пример таких пакетных файлов см. этот ответ, который даже справляется с этим с помощью всего лишь одного пакетного файла, который запускает второй поток для себя.