Как установить тайм-аут при запросе пользователя «да» или «нет» для выключения ПК с Windows? - PullRequest
1 голос
/ 15 июня 2019

Я пытаюсь выключить Windows в определенное время каждый день.

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

set /p a="Are you turn off computer (y/n)"
if %a%==y (shutdown.exe /s /t 00) else (echo "")

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

Теперь я хочу добавить команду, которая проверяет и выполняет команду выключения, если пользователь не дает никаких данных в течение определенного времени,но я не знаю, как это сделать.

Ответы [ 2 ]

1 голос
/ 15 июня 2019

используйте команду choice :

choice /t 10 /d y /m "Shutdown"
if errorlevel 2 (echo that's a no & goto :eof)
shutdown /s /t 0

/t 10 дает время ожидания 10 секунд.
/d y является значением по умолчанию (что выбирается после тайм-аута)
/m "Shutdown - строка приглашения.

0 голосов
/ 15 июня 2019
set "a="
set /p a="Are you turn off computer (y/n)"
if not defined a echo no user entry
if "%a%"=="y" (shutdown.exe /s /t 00) else (echo "")

Проблема с set /p заключается в том, что если пользователь не вводит запись, то имя переменной, которая является set, остается неизменным. Следовательно, он должен быть изначально установлен на ничто .

Синтаксис SET "var=value" (где значение может быть пустым) используется для обеспечения того, чтобы любые заданные пробелы НЕ включались в назначенное значение.

Оператор IF может также принять переключатель /i (после NOT - если используется), чтобы сделать сравнение строк без учета регистра.

...