中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-13 18:54
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 那位高手帮我写这样个批处理
楼 主 那位高手帮我写这样个批处理 发表于 2008-03-07 12:30 ·  中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
UID 83832
性别 男
状态 离线
那位高手帮我写这样个批处理:
(一)判断当前的星期,如果星期一,则继续如下判断:
(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代码。
2 发表于 2008-03-07 12:47 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
UID 74328
性别 男
状态 离线
涉及到%date%和%time%了
还得看区域选项设置中日期格式是否带星期几

先处理自己的事情 过会再来看看
3 发表于 2008-03-07 12:55 ·  中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
UID 83832
性别 男
状态 离线
我的日期格式是这样的:2008-03-07 星期五
时间格式: 11:41:11.01

另外在上面的G代码里要实现这样一个功能:删除掉凡是今天建立或者修改过的可执行文件(文件夹aaa除外)!该怎么实现啊!
4 发表于 2008-03-07 13:06 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
UID 74328
性别 男
状态 离线
先发个当前日期、星期及时间显示的批,在此基础配合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 ]
5 发表于 2008-03-07 13:15 ·  中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
UID 83832
性别 男
状态 离线
我只知道基本的循环语法,批处理的嵌套循环还不太清楚,另外怎么样判断时间在08:00到08:45之间呢?还有那个G代码怎么写呢,头都大了!
6 发表于 2008-03-07 13:32 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
UID 74328
性别 男
状态 离线
代码应该可以精简 只是按最简单的方式写的

@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 ]
7 发表于 2008-03-07 13:45 ·  中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
UID 83832
性别 男
状态 离线
呵呵,Thanks!我去试试看!
8 发表于 2008-03-07 13:51 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
UID 74328
性别 男
状态 离线
删除掉凡是今天建立或者修改过的可执行文件(文件夹aaa除外)??

是在当前文件夹下吗?包含所有子文件夹?
9 发表于 2008-03-07 13:56 ·  中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
UID 83832
性别 男
状态 离线
刚测试了下,跳转到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处参数,上面蓝颜色是改的!
10 发表于 2008-03-07 13:58 ·  中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
UID 83832
性别 男
状态 离线
包括子文件夹里的可执行文件,但文件夹aaa不处理!
11 发表于 2008-03-07 14:24 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
UID 74328
性别 男
状态 离线
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 ...


在我这正常啊 
12 发表于 2008-03-07 14:31 ·  中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
UID 83832
性别 男
状态 离线
还是不行啊,
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)
13 发表于 2008-03-07 14:51 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
UID 74328
性别 男
状态 离线
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
14 发表于 2008-03-07 14:56 ·  中国 湖北 武汉 电信
初级用户
★★
积分 126
发帖 53
注册 2007-04-03 12:33
UID 83832
性别 男
状态 离线
全改成0x:xx应该可以了!
thank you very much!
论坛跳转: