中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 15:24
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 脚本关机出错 请各位指点、优化下
可打印版本  714 / 0
第1楼 feng1984 发表于 2007-05-15 21:00
新手上路 发帖 1 积分 4
脚本关机出错 请各位指点、优化下
我本想做个限制时间开机的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 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023