更新說明: 1、改為多線程方式,第一臺和最后一臺電腦關(guān)機間隔不超過5秒鐘(60臺電腦測試) 2、加入了兩項實用功能:提醒關(guān)機時間輸入0,表示立即關(guān)機,輸入1表示取消上次發(fā)布的關(guān)機命令。 @echo off mode con cols=44 lines=15 color 2f title 胡子定時遠程關(guān)機批處理程序6 call :Lable
:Program for /f "delims=" %%a in ('time/t')do (set t=%%a) set msg=【提示信息】輸入0表示立即關(guān)機 echo 【當前時間】%t% echo. ::獲取所有主機名列表到文件 if exist userlist.txtdel userlist.txt for /f "skip=3 tokens=1 delims= " %%i in ('net view')do (echo %%i) | find "\\" >> userlist.txt
rem if not exist userlist.txt for /f "skip=3 tokens=1 delims= " %%i in ('net view') do (echo %%i) | find "\\" >> userlist.txt
echo %msg% && echo. && set/p s= 請輸入提醒關(guān)機時間:) if %s%==1goto :go if %s%==0goto :go
:Begin for /f "delims=" %%a in ('time/t')do (set b=%%a) cls call :Lable echo 【當前時間】%b% echo. echo 【預(yù)定關(guān)機提醒時間】%s% echo. echo ●請勿關(guān)閉窗口……
if not %b%==%s% (ping 127.1 -n 6 1>nul) &&goto :Begin
:go echo. ::根據(jù)主機名列表批量遠程關(guān)機 set imsg=請立即停止作業(yè),并在關(guān)機前提交! for /f "delims= " %%i in (userlist.txt)do (start /min cmd.exe /c down.bat %%i %s% &&set m+=1) cls call :lable echo. echo 已執(zhí)行任務(wù)次數(shù):%m% echo ●執(zhí)行完畢! echo. pause echo on exit
:Lable echo ┏━━━━━━━━━━━━━━━━┓ echo ┃【定時遠程關(guān)機批處理程序完美版】┃ echo ┠────────────────┨ echo ┃ 胡子軟件工作室·榮譽出品 ┃ echo ┗━━━━━━━━━━━━━━━━┛ echo. echo.
:eof -------------------------------- @echo off rem down.bat
set imsg=請及時保存作業(yè),并在關(guān)機前提交! echo %1 if %1 ==\\%computername% goto eof if %2==1 (shutdown -a -m %1 &&goto :eof) if %2==0 (shutdown -m %1 -s -f -t 9)else (shutdown -m %1 -s -f -t 300 -c %imsg%) :eof |