![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 15:39 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理版万年历 |
| 可打印版本 16,648 / 44 |
| 第31楼 kidzgy | 发表于 2007-08-02 07:19 |
| 中级用户 发帖 129 积分 262 | |
|
我可是在20楼 点击 [Copy to clipboard] 复制到文本里去,然后改扩展名。
怎么会没有问题呢?你试着重新复制你自己的代码到bat中去,然后运行,输入里面所举的例子,会提示错误的。此时错误的界面一直是个循环,不管你按任意键,还是一样。 |
|
| 第32楼 qzwqzw | 发表于 2007-08-02 07:55 |
| 银牌会员 发帖 636 积分 2,343 | |
|
应该是你的情况比较特殊一些
我和早前的namejm讨论都没有遇到这个问题 这次为了测试特意使用IE打开了这个页面 试了 [Copy to clipboard] 功能 也没有任何问题 所以请还是按照的建议插入调试语句看看结果再说 |
|
| 第33楼 frankkf | 发表于 2007-08-02 13:31 |
| 初级用户 发帖 43 积分 88 | |
|
功能应该没问题
以前一些code我也用的是 功能
那qzwqzw用什么看网页? firefox或者是opera?~~ |
|
| 第34楼 kidzgy | 发表于 2007-08-02 16:47 |
| 中级用户 发帖 129 积分 262 | |
|
http://upload.programfan.com/upfile/200708021645310.rar
你试试我这个,看看是不是有这个问题,我可是完全复制下来的哦。 随便打一个字,然后回车。提示“错误的日期.” 然后不管你按什么键是不会回到原来的界面的。 |
|
| 第35楼 qzwqzw | 发表于 2007-08-03 07:03 |
| 银牌会员 发帖 636 积分 2,343 | |
|
非常感谢你的报告!
因此我又揭开了微软cmd的一个secret 解决你的问题方法很简单 请将你的代码文件扩展名改为.cmd 或者在代码中的set /a前加上一句 cd. 以复位错误号为0 ================================== 现在描述一下解决问题的过程 首先下载到你的测试文件后 测试运行果然发现你所述的问题 然后我对问题代码与我的正常运行的源代码进行比较 发现问题代码分别在第2行和第一个goto Main所在行行尾多出两个空格 因为第2个空格位置的特殊性 我以为找到了问题所在 因为我使用的是EditPlus编辑源代码 它保存代码时会自动清除行尾的空格 而帖出去的代码很可能是因为使用了其它编辑器修改后多出来的 然而我在去除掉多余空格测试却发现问题依然存在 再次二进制比较两个代码文件的结果是完全一致 然后我开始漫长的跟踪调试 我发现问题代码总是在因为一次set /a的错误产生错误号9167后 不会再因为正确的set /a而复位错误号0 而正常代码就无此问题 经过再三的思索 终于确定这个问题与文件扩展名相关 也就是说, 在.bat文件中set 产生的错误总不会被set所复位 而在.cmd文件中则是可以的 以下是一段测试代码 将它分别保存为.bat和.cmd文件进行测试后发现 二者结果不同 至此问题基本明晰 但是至于这个问题的深层原因尚没有找到 这个留待有心人继续探索 而且我在EditPlus的工具栏中运行.bat文件并没有遇到此问题 |
|
| 第36楼 kidzgy | 发表于 2007-08-03 20:04 |
| 中级用户 发帖 129 积分 262 | |
|
那请你更新一下20楼的代码,以至于更完善一点。
不管在bat还是cmd中,能够保证正常运行就够了。 |
|
| 第37楼 kidzgy | 发表于 2007-08-04 18:05 |
| 中级用户 发帖 129 积分 262 | |
|
还是有错误,还是保存到BAT的时候,输入07-02-03提示错误。
我是复制20楼的代码到BAT中和CMD中分别测试的。 |
|
| 第38楼 qzwqzw | 发表于 2007-08-04 19:02 |
| 银牌会员 发帖 636 积分 2,343 | |
|
问题已经查明
仍然是set的errorlevel问题 至于问题的细节 和代码的修改 就留给你当今晚的作业吧 也算考一考你对这个问题的认识 |
|
| 第39楼 kidzgy | 发表于 2007-08-04 19:14 |
| 中级用户 发帖 129 积分 262 | |
|
不会吧,我对批处理不是很熟悉啊,不像你们那么懂得资深。
如果叫我测试那还行,如果叫我修复问题,那简直是为难我。。 |
|
| 第40楼 zjl5 | 发表于 2007-08-04 23:20 |
| 初级用户 发帖 15 积分 82 | |
|
qzwqzw兄可能太忙了...
我就针对症状改改吧.可能会引出更多的问题呵~` 另外加入了 针对农历的生肖和干支年计算. |
|
| 第41楼 zjl5 | 发表于 2007-08-05 01:21 |
| 初级用户 发帖 15 积分 82 | |
|
奇怪%errorlevel%怎么会是9167,兄台解释一下,谢谢!!
因为没有编辑贴子的权限,所以又得另发一张了. |
|
| 第42楼 qzwqzw | 发表于 2007-08-05 18:47 |
| 银牌会员 发帖 636 积分 2,343 | |
|
9167是set /a因为无效数字(比如09)错误产生的errorlevel
需要注意的是set /p如果未获取到任何输入也会产生1的errorlevel 而且即使set /a和set /p再正常运行也不会复位早前的errorlevel 也就是说,在命令行或者.bat脚本中 set命令只有在运行出错时才会置errorlevel为非0值 在正确运行时是不会置0值的 而在.cmd脚本中 set在正确运行时是会置errorlevel为0值的 |
|
| 第43楼 sunny04551 | 发表于 2007-08-20 15:30 |
| 贫困用户 发帖 5 积分 -4 | |
|
要是能查到农历就更好
|
|
| 第44楼 meicnk | 发表于 2007-08-27 11:16 |
| 初级用户 发帖 11 积分 22 | |
|
很好,收藏中
|
|
| 第45楼 hmilywenjia | 发表于 2008-05-26 14:14 |
| 新手上路 发帖 5 积分 8 | |
|
今天上来看到namejm的消息很是高兴啊,一直关注你的消息,你没事就好
|
|
| 上一页 1 2 3 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |