中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [求助]set /a出错 上一主题 | 下一主题
Eblis
中级用户




积分 251
发帖 108
注册 2007-1-7
来自 湖南==>广州
状态 离线
『楼 主』:  [求助]set /a出错


:find
if exist date.txt (goto Set1) else (goto set2)

:Set1
for /f "tokens=1" %%a in (date.txt) do set d1=%%a
goto compare

:set2
for /f "tokens=1" %%a in ('date/t') do set d1=%%a
goto compare

:compare
for /f "tokens=1" %%a in ('date/t') do set d2=%%a
for %%a in (%d2% %d1%) do call :date2day %%a
goto :eof



:Date2Day
setlocal ENABLEEXTENSIONS
set /a a+=1
for /f "tokens=1-3 delims=/-, " %%a in ('echo/%1') do (
  set yy=%%a & set mm=%%b & set dd=%%c
)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
set n%a%=%j%
endlocal&goto :EOF
其中date.txt里面就是一个日期..不同于现在的日期..我想比较2个日期的差别通过date2day变成数字..然后再变成时间..但是..在倒数第二句..我想set n1=%j%
set n2=%j%..是不是通过call之后set /a a+=1 只运行一次.所以..永远只是n1=%j%

[ Last edited by bjsh on 2007-7-31 at 12:51 PM ]



DOS新人.多多指導
2007-6-22 21:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Eblis
中级用户




积分 251
发帖 108
注册 2007-1-7
来自 湖南==>广州
状态 离线
『第 2 楼』:  

如果是的话..请问有什么办法解决不?如果不行..我只能call 2次了..



DOS新人.多多指導
2007-6-22 21:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Eblis
中级用户




积分 251
发帖 108
注册 2007-1-7
来自 湖南==>广州
状态 离线
『第 3 楼』:  

咋就没人说话咧`?指点一下撒..我已经搜索过论坛了``



DOS新人.多多指導
2007-6-22 23:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 4 楼』:  

看看“命令延时”的技巧:

Setlocal EnableDelayExpansion

另:重新看一下语法。。了解一下for语句。。

还有 了解一下字符串和数字间的区别。



知,不觉多。不知,乃求知
2007-6-22 23:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 5 楼』:  

对,去掉setlocal ENABLEEXTENSIONS

2007-6-22 23:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Eblis
中级用户




积分 251
发帖 108
注册 2007-1-7
来自 湖南==>广州
状态 离线
『第 6 楼』:  

thanks ..开始因为这段代码是willsort版主的贴出来的..我上google也查找过他上面写的核心算法Ritchie Lawrence 算法没有..翻译成中文搜也没有..也就没理解..
我看到这一段代码没用for但用了set /a不理解那一段..所以也不知道有没有用变量延时.就没改了..



DOS新人.多多指導
2007-6-22 23:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
woo88
初级用户





积分 188
发帖 96
注册 2008-3-11
状态 离线
『第 7 楼』:  

dos 7.0 没有SET /P或/A参数啊

2008-3-15 02:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 8 楼』:  

LS搞没搞错.这一一般讨论WXP/2K/NT的cmd.exe

2008-3-15 12:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: