2

Я хотел бы настроить скрипт или инструмент на некоторых компьютерах для автоматического выключения в определенный момент времени, скажем, поздно ночью, когда пользователи уходят на день (забывая выключить компьютер). Следует также принудительно завершить работу, если некоторые процессы не отвечают. Однако, если пользователь оказывается за компьютером, использующим его, я хочу показать кнопку «Отмена», скажем, 30 секунд, чтобы пользователь мог отменить выключение, как это делает uTorrent.

Я проверил Daxtar Shutdown (хороший инструмент, но без планирования, и средство создания командного файла) и Simple Shutdown Scheduler (хороший, но без возможности отмены). Я также посмотрел на главные вопросы, отмеченные отключением на этом форуме. Я также пытался использовать скрипт завершения работы внутри пакетного файла Windows, но не смог найти способ выполнить ключевое требование «пользовательского удовольствия», то есть «возможность отменить его за N секунд». У меня нет «удаленного» требования. Желательно, чтобы я мог использовать его в Windows XP-SP3 и Windows 7.

Какой сценарий, командный файл или инструмент или их комбинация могут выполнить это?

2 ответа2

2

Я думаю, что вы найдете эту тему полезной. Пожалуйста, пройдите и посмотрите, поможет ли это.

Ссылка на тему.

Использование: выключение / л | / с | / г | / г | / а | / р | / ч | / e] [/ f] [/ m \computer] [/ t xxx] [/ d [p | u:] xx: yy [/ c "comment"]]

...

/t xxx     Set the time-out period before shutdown to xxx seconds.
           The valid range is 0-315360000 (10 years), with a default of 30.
           If the timeout period is greater than 0, the /f parameter is
           implied.
/c "comment" Comment on the reason for the restart or shutdown.
           Maximum of 512 characters allowed.
/f         Force running applications to close without forewarning users.
           The /f parameter is implied when a value greater than 0 is
           specified for the /t parameter.

Спасибо. Дай мне знать, если что.

1

Дайте этому шанс, у меня не было времени, чтобы построить его, чтобы сделать это по-другому, но этого должно быть достаточно, я полагаю. , ,

Обратите внимание, что в for /l %%N in (30 число здесь - это количество секунд ожидания, поэтому 30 течение 30 секунд.

@echo off
setlocal enableDelayedExpansion
for /l %%N in (30 -1 1) do (
  set /a "min=%%N/60, sec=%%N%%60, n-=1"
  if !sec! lss 10 set sec=0!sec!
  cls
  choice /c:CN1 /n /m "Restart in !min!:!sec! - Press N to Restart Now, or C to Cancel. " /t:1 /d:1
  if not errorlevel 3 goto :break
)
cls
echo RESTART in 0:00 - Press N to Restart Now, or C to Cancel.
:break
if errorlevel 2 (shutdown /r /t 10) else echo restart Canceled

источник

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .