Board logo

标题: 脚本关机出错 请各位指点、优化下 [打印本页]

作者: feng1984     时间: 2007-5-15 21:00    标题: 脚本关机出错 请各位指点、优化下

我本想做个限制时间开机的bat(晚上23点到7点不能用电脑). 开机启动的已做好,但现在考虑到那只是开机时才运行,对那些早些时候开的机一直没有关的电脑还是无效的,所以想做个每隔段时间就运行的bat,思路如下:

1、取得网络时间伺服器的时间,以防人家更改电脑的时间(怕命令不成功,所以循环了两次)
2、延时大约30秒
3、是取得时间,判断条件
4、根据条件作出相应的命令(关机,计划关机,计划启动本脚本)

但运行不成功,我分开命令运行却可以,所以感到迷惑,请各位指点,优化下。感激不尽!


———————贴上bat—————————————

@Echo Off
set p=
:rt
rem 设置时间伺服器
net time /setsntp:time.stdtime.gov.tw>nul 2>nul  
rem 停止时间服务
net stop w32time>nul 2>nul  
rem 启用时间服务
net start w32time>nul 2>nul  
rem 立即同步时间
w32tm -s>nul 2>nul
set /a  p=%p%+1
if %p% lss 2 (
  goto rt
) else (
ping -n 30 127.0.0.1>nul 2>nul
)
set tm1=%time:~0,2%
set tm2=%time:~3,2%
set /a tm3=%tm2%+10
if %tm3% GEQ 60 set /a tm4=%tm1%+1 & set /a tm5=%tm3%-60
set /a tm6=%tm1%+%tm2%/60
set /a tm7=%tm4%+%tm5%
if %tm7% gtr 2300 schtasks /delete /tn %tm1%%tm2% /f>nul 2>nul & schtasks /delete /tn 关机 /f>nul 2>nul & schtasks /create /tn "关机" /tr %windir%\system32\shutdown.exe -s -f -t 00" /sc once /st 23:00:00 /ru "">nul 2>nul & exit
if %tm6% lss 23 (
    if %tm6% geq 7 (
     schtasks /delete /tn %tm1%%tm2% /f>nul 2>nul
schtasks /create /tn %tm7% /tr %windir%\system32\GroupPolicy\Machine\Scripts\xsgj\xsgj.bat /sc once /st %tm7% /ru "">nul 2>nul
exit  
) else (
%windir%\system32\shutdown.exe -s -f -t 00      
)) else (
%windir%\system32\shutdown.exe -s -f -t 00
)

[ Last edited by feng1984 on 2007-5-15 at 09:27 PM ]