Как установить ограничение по времени для set /p в пакетном режиме?

Как установить ограничение по времени для set /p в пакетном режиме?

Я уже около 30 минут пытаюсь выяснить, как установить ограничение по времени для «set /p» в пакетном режиме, но так и не могу понять, как это сделать.

set /p example=

Я хочу, чтобы этот код завершался, если после активации прошло 3 секунды, а пользователь ничего не ввел.

решение1

Команда SET не очень хорошо приспособлена для такого использования, и пользователь Джефф Цейтлин в своем комментарии предложил другую команду, которая действительно ограничивает время.

Если вы все же хотите использовать команду SET, то для этого потребуются два пакетных файла, как показано ниже:

  1. Удалить определенный временный файл, запустить Batch два, подождать некоторое время, затем убить Batch два. Если временный файл теперь существует, то его значение может быть использовано.
  2. Ожидайте ввода и сохраняйте его в этом временном файле. Если он будет убит до получения ввода, то файл не будет существовать.

Пример таких пакетных файлов см. этот ответ, который даже справляется с этим с помощью всего лишь одного пакетного файла, который запускает второй поток для себя.

Связанный контент