中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 那位高手帮我写这样个批处理
作者:
标题: 那位高手帮我写这样个批处理 上一主题 | 下一主题
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『楼 主』:  那位高手帮我写这样个批处理

那位高手帮我写这样个批处理:
(一)判断当前的星期,如果星期一,则继续如下判断:
        (1)如果是08:00到08:45则执行A代码;
        (2)如果是08:55到09:40则执行B代码;
         (3)如果是09:50到10:30则执行C代码;
(二)如果是星期二,则继续如下判断:
        (1)如果是08:00到08:45则执行D代码;
        (2)如果是08:55到09:40则执行E代码;
         (3)如果是09:50到10:30则执行F代码;
(二)如果是星期六或者星期天,则执行G代码。

2008-3-7 12:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 2 楼』:  

涉及到%date%和%time%了
还得看区域选项设置中日期格式是否带星期几

先处理自己的事情 过会再来看看

2008-3-7 12:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『第 3 楼』:  

我的日期格式是这样的:2008-03-07 星期五
时间格式: 11:41:11.01

另外在上面的G代码里要实现这样一个功能:删除掉凡是今天建立或者修改过的可执行文件(文件夹aaa除外)!该怎么实现啊!

2008-3-7 12:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 4 楼』:  

先发个当前日期、星期及时间显示的批,在此基础配合IF可以实现楼主的要求
@echo off

for /f "skip=4 tokens=3,4" %%i in (
    'reg query "HKCU\Control Panel\International" /v sShortDate'
) do (echo 显示当前区域选项时间格式为 %%i %%j)

::设置区域选项时间格式为"年-月-日 星期几"
reg add "HKCU\Control Panel\International" /v "sShortDate" /d "yyyy-MM-dd dddd" /f>nul

::显示当前年月日星期及时间
echo 当前日期为:%date:~0,4%年%date:~5,2%月%date:~8,2%日
echo 当前星期为:%date:~11,3%
echo 当前时间为:%time:~0,5%
pause>nul
[ Last edited by suntb on 2008-3-7 at 01:10 PM ]

2008-3-7 13:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『第 5 楼』:  

我只知道基本的循环语法,批处理的嵌套循环还不太清楚,另外怎么样判断时间在08:00到08:45之间呢?还有那个G代码怎么写呢,头都大了!

2008-3-7 13:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 6 楼』:  

代码应该可以精简 只是按最简单的方式写的
@echo off

for /f "skip=4 tokens=3,4" %%i in (
    'reg query "HKCU\Control Panel\International" /v sShortDate'
) do (echo 当前区域选项时间格式为:%%i %%j)

::设置区域选项时间格式为"年-月-日 星期几"
reg add "HKCU\Control Panel\International" /v "sShortDate" /d "yyyy-MM-dd dddd" /f>nul

::显示当前年月日星期及时间
echo 当前日期为:%date:~0,4%年%date:~5,2%月%date:~8,2%日
echo 当前星期为:%date:~11,3%
echo 当前时间为:%time:~0,5%

::楼主的要求
if "%date:~11,3%"=="星期一" (
  if %time:~0,5% GEQ 8:00 (if %time:~0,5% LEQ 8:45 goto :A)
  if %time:~0,5% GEQ 8:55 (if %time:~0,5% LEQ 9:40 goto :B)
  if %time:~0,5% GEQ 9:50 (if %time:~0,5% LEQ 10:30 goto :C)
)
  
if "%date:~11,3%"=="星期二" (
  if %time:~0,5% GEQ 8:00 (if %time:~0,5% LEQ 8:45 goto :D)
  if %time:~0,5% GEQ 8:55 (if %time:~0,5% LEQ 9:40 goto :E)
  if %time:~0,5% GEQ 9:50 (if %time:~0,5% LEQ 10:30 goto :F)
)

if "%date:~11,3%"=="星期六" (goto :G)
if "%date:~11,3%"=="星期日" (goto :G)

echo 未执行任何操作
pause&goto :EOF

:A
echo 执行操作A
pause&goto :EOF

:B
echo 执行操作B
pause&goto :EOF

:C
echo 执行操作C
pause&goto :EOF

:D
echo 执行操作D
pause&goto :EOF

:E
echo 执行操作E
pause&goto :EOF

:F
echo 执行操作F
pause&goto :EOF

:G
echo 执行操作G
pause&goto :EOF
[ Last edited by suntb on 2008-3-7 at 01:51 PM ]

2008-3-7 13:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『第 7 楼』:  

呵呵,Thanks!我去试试看!

2008-3-7 13:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 8 楼』:  

删除掉凡是今天建立或者修改过的可执行文件(文件夹aaa除外)??

是在当前文件夹下吗?包含所有子文件夹?

2008-3-7 13:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『第 9 楼』:  

刚测试了下,跳转到F那句有点问题,不能够显示F  
if "%date:~11,3%"=="星期" (
  if %time:~0,5% GEQ 8:00 (if %time:~0,5% LEQ 8:45 goto :D)
  if %time:~0,5% GEQ 8:55 (if %time:~0,5% LEQ 9:40 goto :E)
if %time:~0,5% GEQ 9:50 (if %time:~0,5% LEQ 13:30 goto :F)
)

:F
echo F
pause&goto :EOF


为了测试我改了2处参数,上面蓝颜色是改的!

2008-3-7 13:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『第 10 楼』:  

包括子文件夹里的可执行文件,但文件夹aaa不处理!

2008-3-7 13:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by wfyinghun at 2008-3-7 13:56:
刚测试了下,跳转到F那句有点问题,不能够显示F  
if "%date:~11,3%"=="星期" (
  if %time:~0,5% GEQ 8:00 (if %time:~0,5% LEQ 8:45 got ...

在我这正常啊 

2008-3-7 14:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『第 12 楼』:  

还是不行啊,
if %time:~0,5% GEQ 9:50 (if %time:~0,5% LEQ 13:30 goto :F)
不过改成这样就可以了
if %time:~0,5% GEQ 09:50 (if %time:~0,5% LEQ 13:30 goto :F)

2008-3-7 14:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by wfyinghun at 2008-3-7 14:31:
还是不行啊,
if %time:~0,5% GEQ 9:50 (if %time:~0,5% LEQ 13:30 goto :F)
不过改成这样就可以了
if %time:~0,5% GEQ 09:50 (if %time: ...

要不你改为8:XX和9:XX全改为08:XX和09:XX

2008-3-7 14:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wfyinghun
初级用户





积分 126
发帖 53
注册 2007-4-3
状态 离线
『第 14 楼』:  

全改成0x:xx应该可以了!
   thank you very much!

2008-3-7 14:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: