无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 8671|回复: 10
打印 上一主题 下一主题

我也来学学批处理.请各位批处理大虾们帮忙.

[复制链接]
跳转到指定楼层
1#
发表于 2006-8-17 21:59:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自学了一阵子的批处理..今天想试编一下.
不知道批处理能不能这样执行.
思路是这样的.编写一个批处理使得计算机在某一时间后才能开机.
批处理放在组策略---windows设置----脚本-----登陆
可不可以让批处理先获取系统时间.再执行相应语句.
我上网看了一下批处理获取时间的语句:
set AFile=bak-%DATE:~4,4%%DATE:~9,2%%DATE:~12,2%
set BFile=bak-%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
用判断if是否用IF ERRORLEVEL <测试前一个命令的返回值>..如果大于某时间返回一个值..如果不大于返回另一个值.如果返回大于的那个值进不进行任何操作.如果返回的另一个值则shutdown
不知道我以上的思路是否正确...
2#
发表于 2006-8-17 22:30:06 | 只看该作者
  在某个时间才开机?电都断了,你要代码替你把电源开关打开么?这个想法太疯狂了。估计这么牛的程序还没出世,呵呵。

  如果要在指定的时间关机的话,这个还是办得到的,实现的方法也不复杂,at+shutdown就可以了。
回复

使用道具 举报

3#
发表于 2006-8-17 22:34:54 | 只看该作者
楼主的意思, 是开机后,在某一时间进入系统后关机吧?
回复

使用道具 举报

4#
发表于 2006-8-18 09:13:57 | 只看该作者
  如果楼主的意思像3楼所说的那样,可以参考这个帖子:

  想编一个批处理,在xp的某一时间,无法进入系统? http://www.cn-dos.net/forum/view ... id=ON0tfV#pid135611

[ 本帖最后由 namejm 于 2006-8-18 09:15 AM 编辑 ]
回复

使用道具 举报

5#
 楼主| 发表于 2006-8-18 13:13:27 | 只看该作者
意思大致是这样的,我想电脑在12点前都没办法开机(开机后shutdown)12点后开系统可以正常运行。
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=:" %%i in ('time /t') do (
    set hour=x%%i& set minute=x%%j
    set hour=!hour:~-2!& set minute=!minute:~-2!
    set now=!hour!!minute!
    set "now=!now: =!"
    if !now! gtr 800 if !now! lss 1030 shutdown -s
)
有的句子看不大懂。有没有人注释一下。谢谢 。。。。。
回复

使用道具 举报

6#
发表于 2006-8-18 14:01:46 | 只看该作者
原帖由 hero123 于 2006-8-18 01:13 PM 发表
@echo off
:: 启用变量延迟
setlocal enabledelayedexpansion
:: 'time /t'在for语句中表示取系统当前时间,整体的意思是取冒号之前的小时数和之后的分钟数,抛弃秒数和微秒数
for /f "tokens=1,2 delims=:" %%i in ('time /t') do (
    :: 特别注意:以下set语句中的&要紧跟前一句,之前不可留空格,否则会引起麻烦
    set hour=x%%i& set minute=x%%j                 :: 分别在小时数和分钟数前插入任意字符(此处插入x),以便于对小于10的数进行处理
    set hour=!hour:~-2!& set minute=!minute:~-2!  :: 取最后两位数,则形如08、09之类小于10的数都转化为形如8、9的数
    set now=!hour!!minute!       :: 把取到的小时数和分钟数拼接起来
    set "now=!now: =!"           :: 这一句是去掉拼接数中可能含有的空格;如果以上部分照写,则可去掉此句
    if !now! gtr 800 if !now! lss 1030 shutdown -s   :: 对拼接后的数进行检查,看是否处于受限制的范围
    :: 如果要在12点之前禁止开机,上一句可改成if !now! lss 1200 shutdown -s;并且以上代码还可以简化
)


  哎呀我的妈呀,代码不多,注释反倒一大串,写注释比写代码要累得多呀。希望各位在没事的时候常在CMD窗口中用"命令+空格+/?"来查看帮助信息,或者是运行 hh %systemroot%\ntcmds.chm,或者是copy %systemroot%\ntcmds.chm>"指定位置"然后到指定位置找ntcmd.chm来看。

[ 本帖最后由 namejm 于 2006-8-18 05:15 PM 编辑 ]
回复

使用道具 举报

7#
 楼主| 发表于 2006-8-18 16:28:53 | 只看该作者
仁兄辛苦了......感谢到流鼻涕.....
回复

使用道具 举报

8#
发表于 2006-8-18 17:16:48 | 只看该作者
原帖由 hero123 于 2006-8-18 04:28 PM 发表
仁兄辛苦了......感谢到流鼻涕.....

  
  长太息以掩涕兮……哈哈
回复

使用道具 举报

9#
发表于 2006-8-18 21:26:14 | 只看该作者
这个时间不可靠吧,且不管batch对不对,人家在cmos或系统改一下时间不就破了吗?
回复

使用道具 举报

10#
发表于 2006-8-18 21:39:51 | 只看该作者
  只要是程序,都有它的弱点,只是程度上的差异而已。这段代码对付一般的菜鸟是绰绰有余了。
回复

使用道具 举报

11#
 楼主| 发表于 2006-8-19 19:21:11 | 只看该作者
呵呵...讨论讨论而已.....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-27 23:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表