Команда выключения ПК с опцией прерывания, которая будет работать в Windows 8

Я пытаюсь создать пакетный файл (ы), который заставляет мой компьютер с Windows 8 отключаться по прошествии 30 секунд, а также появляется предупреждающее сообщение: «Ваш компьютер выключится через 30 секунд! Нажмите кнопку« Отмена », чтобы прервать работу. Неисправность." Я создал на своем рабочем столе следующие командные файлы:

shutdown / s / c "Ваш компьютер выключится через 30 секунд! / t 30

и:

выключение / а

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

Команды неверны для Windows 8?

Я хотел бы иметь один скрипт с предупреждением о всплывающем сообщении и с кнопкой отмены (прерывания) до истечения 30 секунд или, по крайней мере, чтобы 2 командных файла работали в Windows 8 с предупреждающим сообщением и командным файлом прерывания, оба работают .

Не уверен, есть ли в Windows 8 команда или что-то еще, что работает, но хотелось бы, чтобы она работала. Любая помощь очень ценится !!!

Большое вам спасибо!

Билли


person Billy    schedule 06.03.2013    source источник


Ответы (5)


Пытаться

@echo off
echo Your PC will shutdown in 30 seconds! Press CTRL+C to abort.
ping -n 31 127.0.0.1>nul
shutdown /s

Команда PING - это безопасный способ приостановить пакетный сценарий на желаемое время. Подробнее здесь: Как ждать в пакетном скрипте?

Нажатие Ctrl-C прервет продолжение пакетного сценария.

person jtheman    schedule 06.03.2013
comment
jtheman, Спасибо за быстрый ответ! Ваш ответ работает путем немедленного вызова командной строки, а CTRL + C работает. Я не ожидал, что появится предупреждение типа командной строки (черный ящик), но оно работает. Любой другой способ, кроме приглашения cmd? Я сохранил ваш код как файл .bat. Можно ли прервать его с помощью всего одной клавиши, такой как клавиша A или C, или функциональной клавиши, такой как F12? Я не могу отблагодарить вас за вашу помощь и с нетерпением жду вашего ответа! - person Billy; 07.03.2013
comment
Что ж, заставить его работать сложнее, чем вы думаете - ЕСЛИ вы хотите, чтобы обратный отсчет продолжался и позволял пользовательскому нажатию клавиши прерываться во время тайм-аута. Ctrl-C как общая функция прерывания в остальном довольно проста. Но в противном случае см. Этот пост: stackoverflow.com/questions/12331428/ (приведенный ниже пример Гаурава не будет работать, поскольку нажатие клавиши прерывания A должно произойти ДО или ПОСЛЕ 30-секундной задержки, но не ВО ВРЕМЯ задержки ) - person jtheman; 07.03.2013
comment
jtheman, я с тобой согласен. После просмотра поста все сложнее. Я просто воспользуюсь вашим рабочим пакетом, используя опцию CTRL + C. Хочу поблагодарить вас за помощь !!!! - person Billy; 08.03.2013
comment
jtheman, Обновление - щелчок по файлу .bat работает нормально, однако, когда я добавляю его в свою программу резервного копирования, параметр `` по завершении '' (есть параметр команды резервного копирования после завершения для запуска файла .bat), он не отображает сообщение с приглашением cmd & инструкции по прерыванию. Когда резервное копирование завершается, оно ждет 30 секунд без подсказки cmd, и компьютер немедленно выключается. Странно, что прямой щелчок по файлу .bat тоже работает так, как предполагалось, но когда резервное копирование завершается и запускается файл .bat, он выключает компьютер через 30 секунд, но без приглашения cmd с опцией сообщения и прерывания. Любые идеи? Спасибо! - person Billy; 09.03.2013
comment
Я не знаю. Это должно быть что-то, как ваше программное обеспечение резервного копирования выполняет сценарий. Обычно пакетные сценарии всегда запускаются в окнах консоли. Так что я не могу вам здесь помочь ... - person jtheman; 11.03.2013

Это несколько проще и было протестировано на кухне в Windows 8.

:: Shutdown.bat
:: Messages a forced shutdown then waits for a Ctrl+C to abort,
:: any key to execute immediately, or shuts all programs and  
:: the computer down after Timeout /t (n) seconds automatically.
:: 
@echo off
echo.
echo.
:: 
echo Press Ctrl+C to Abort imminent Shutdown because I'm
timeout /t 120
::
shutdown.exe /s /t 5
exit
person Steve987    schedule 08.08.2013
comment
Если вы используете планировщик задач для вызова выключения в определенное время, вызовите его так, чтобы в командной консоли отображалось: :: вызывает shutdown.bat с помощью cmd / k для отображения окна консоли :: даже если вызывается планировщиком задач :: cmd / k shutdown.bat exit - person Steve987; 14.08.2013

Привет, ты можешь попробовать это,

@echo off
echo "Your System will shutdown in 30 seconds. To abort press A"
SET Option=Choice:
if "%Option%"=="A" GOTO Sub_MenuA
shutdown /s
:Sub_MenuA
exit 0
person Gaurav Kolarkar_InfoCepts    schedule 06.03.2013
comment
Gaurav Kolarkar, Спасибо за быстрый ответ! Ваш ответ работает, вызывая приглашение cmd (черный ящик) сразу с сообщением, но нажатие A работает, и оно не ждет в течение 30 секунд. Выключение начинается в считанные секунды. Есть идеи по устранению проблемы? Ваша помощь очень признательна, и я с нетерпением жду вашего ответа! Спасибо! - person Billy; 07.03.2013

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

title GO HOME
@echo off
:MAIN
echo.
echo.
echo.
echo Do you wanna shut down?
echo.
echo The time is %time%
echo.
echo.
echo.
echo.
set /p input= y or n?     
if %input%==n goto work
if %input%==y call bye.bat

:work
echo.
echo.
echo.
echo. Alright, keep working busy bee.

TIMEOUT 5

Создайте еще один файл bat и сохраните его как bye.bat, скопируйте и вставьте этот код:

echo Have a nice evening, Cya.

shutdown.exe /s /t 0
person Manu Vasudev    schedule 14.06.2013

Вот еще вариант. Этот BAT-файл задает пользователю вопрос ДА / НЕТ, чтобы определить, следует ли продолжать завершение работы. Пользователю не нужно нажимать CTRL + C для отмены. Завершение работы не будет продолжаться, пока пользователь не сделает выбор.

@ECHO OFF
:: This batch file allows the user to choose to shutdown immediately, or cancel and   return to Windows
::
CD\
CLS
ECHO.
:LOOP
ECHO Would you like to shutdown immediately?
ECHO.
ECHO   Y = SHUTDOWN IMMEDIATELY (WARNING!! Unsaved work will be lost)
ECHO   N = CANCEL and return to Windows
ECHO.
SET Choice=
SET /P Choice=TYPE YOUR CHOICE AND PRESS ENTER: 
IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
ECHO.
IF '%Choice%'=='y' GOTO ShutdownNow
IF '%Choice%'=='n' GOTO Leave
ECHO "%Choice%" is not valid. Please try again.
ECHO.
GOTO Loop
:ShutdownNow
ECHO.
shutdown /s /t 1

:Leave
Exit
person pmn02    schedule 14.03.2014