[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 12# canyuexiaolang


    谢谢12L提醒我用延迟变量 总是忘记这个延迟变量 学艺不精啊 我 呵呵  对了 在哪里可以找到关于延迟变量的详解

TOP

本帖最后由 hanyeguxing 于 2011-8-12 04:57 编辑

回复 14# er8852973


    在批处理中,不能直接将不同进制的混合数字,例如时间进行直接运算,以1楼代码为例,除了延迟的问题,还有:
当时间为12:08、12:09时,set b=%t:~-2%,截取为08、09,set /a f=b+1,此时set /a将出现错误
当时间为12:59、时,set b=%t:~-2%,截取为59,set /a f=b+1,运算结果将为12:60,这个时间 at 是无法接受的
因为set /p t= 使得 t是固定的,4次循环时set b=%t:~-2%时b都是一个值,set /a f=%b%+1 和set s=%t:~0,2% 和 set t=%s%:%f% 的结果都将是同一个结果,那么4次循环的意义何在呢?
for 下直接跟标签,将导致at执行5次,而不是4次
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 17# hanyeguxing


    17L关于进制和for下面直接跟标签执行5次的说法很是对的 我执行代码时就是这样的 请问 1,输入08  09时 set/a f=b+1问什么会出现错误 好像输入 8  9前面不带0就好了 这是为什么?2,为什么for下面跟标签会执行5次  请教 谢谢解答 呵呵

TOP

回复 17# hanyeguxing


    17L关于进制和for下面直接跟标签执行5次的说法很是对的 我执行代码时就是这样的 请问 1,输入08  09时 set/a f=b+1问什么会出现错误 好像输入 8  9前面不带0就好了 这是为什么?2,为什么for下面跟标签会执行5次  请教 谢谢解答 呵呵

TOP

回复 13# hanyeguxing


    请问 hanyeguxing 这句代码是怎么计算时间的set/a t=1%t:~0,2%*60+1%t:~-2%-6100
%前面的1是怎么回事  还有后面为什么-6100  是在没整明白这算法 呵呵  惭愧 请指教啊

TOP

回复 19# er8852973


set /?
Numeric values are decimal numbers, unless
prefixed by 0x for hexadecimal numbers, and 0 for octal numbers.
So 0x12 is the same as 18 is the same as 022. Please note that the octal
notation can be confusing: 08 and 09 are not valid numbers because 8 and
9 are not valid octal digits.
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 hanyeguxing 于 2011-8-12 12:07 编辑

回复 20# er8852973


    以当前时间为12:09为利
set/a t=1%t:~0,2%*60+1%t:~-2%-6100
%t:~0,2%截取前两为为12
1%t:~0,2%前面加1,变成112
1%t:~-2%截取前后位并在前面加1得到109
前面加1是为了使得09和08这样的数字变成109和108以解决的问题
小时前加1导致多出100小时,分钟前加1导致多出100分钟,需要再减去,总计6100分钟
set/a t+=1,s=100+t/60%%24,f=100+t%%60
t+=1以分钟为单位的数字加1
s=100+t/60%%24将此数字转换为小时,即取商的整数部分.其中t/60获得就是此数字,%%24对小时进行修正,例如把24修正为0 。 100+将结果修正为3位数,例如把12或8变成112或108,以在以后截取后两位
f=100+t%%60将获取分钟余数,原理同上
!s:~-2!:!f:~-2!截取
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 22# hanyeguxing


    孤星寒夜 你的这招前面加1是自己想出来的吗 是原创吗 真帮 我服了 我真没想到 这个方法 谢谢 学到了 但还是请告诉我是你想出来的加1这个招来解决进位制的问题吗

TOP

膜拜hanyeguxing 大牛。。。
花开不问月,不语笑红尘.

TOP

本帖最后由 cjiabing 于 2011-8-13 22:04 编辑

标题:批处理怎样用计划任务定时执行文件?
内容:请问我这个代码有什么不对的地方吗 怎么不能正常执行呢
目的:我要实现的功能是间隔一定时间 就定时执行特定功能

虽然不是该版版主不必操心,可我们这些善良的读者经常被欺骗上当!~
标题问的是一个内容,内容问的是另外一个问题,问题问的是另外一个目的,搞不懂楼主到底想干嘛。

至于间隔定时执行任务,schtasks有一个参数可以实现。如果使用at,需要计算时间差,时间差可以搜索论坛。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

返回列表