中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 12:42
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » 判断奇偶数
可打印版本  5,682 / 28
第16楼 kcdsw 发表于 2006-04-01 08:11
中级用户 发帖 179 积分 404
呵呵 我不行了 困了 觉会去
周一继续讨教哦~~~ 谢谢楼上热心的大哥们 ~~!


拜一个~~~ 睡觉去了~~ 888
第17楼 kcdsw 发表于 2006-04-03 11:02
中级用户 发帖 179 积分 404
我用
for /f .....('date/t').... 是用来容错的
因为2000和xp不太一样的
第18楼 kcdsw 发表于 2006-04-03 18:13
中级用户 发帖 179 积分 404
出了新问题了

刚才测试的时候发现了一个小问题






这两个执行结果不一样

情况是这样的

a.txt里边有5 9 11
用第一段代码执行出来的是5.pdf 和6.pdf
而用第二段代码执行出来的是1.pdf 5.pdf 6.pdf
批处理所在的文件夹下有
12o.pdf
11o.pdf
7.pdf
8o.pdf
6.pdf
10o.pdf
2.pdf
3.pdf
4.pdf
1.pdf
5.pdf
9o.pdf
13.pdf

[ Last edited by kcdsw on 2006-4-3 at 18:18 ]
第19楼 3742668 发表于 2006-04-04 18:08
荣誉版主 发帖 718 积分 2,013
检查一下你的a.txt后面是否有多余的回车?
也就是说要保证a.txt里面11是最后一行。
很明显,问题出在 copy %filename%.pdf .\need\%filename%.pdf 这一行上。
具体原因自己好好分析分析吧。
如果不是这个原因请再回贴说明,第一想到的就是这个原因了。
第20楼 kcdsw 发表于 2006-04-05 10:27
中级用户 发帖 179 积分 404
请指点 我从早上想到现在了
第21楼 3742668 发表于 2006-04-05 10:42
荣誉版主 发帖 718 积分 2,013
是不是因为11后面有回车?
第22楼 kcdsw 发表于 2006-04-05 13:10
中级用户 发帖 179 积分 404
没有啊

copy %filename%.pdf .\need\%filename%.pdf

这句我想了很久 也没想明白哪里有问题
第23楼 3742668 发表于 2006-04-05 13:26
荣誉版主 发帖 718 积分 2,013
那你把pause语句改为exit看看。
第24楼 kcdsw 发表于 2006-04-05 14:24
中级用户 发帖 179 积分 404
就是因为exit不对 我才改成pause来观察它的每句的执行结果的
第25楼 3742668 发表于 2006-04-05 14:43
荣誉版主 发帖 718 积分 2,013
copy %1.pdf .\need\%1.pdf && copy %filename%.pdf .\need\%filename%.pdf
表示前一句执行成功才执行后一句,而
copy %1.pdf .\need\%1.pdf
copy %filename%.pdf .\need\%filename%.pdf
不管前面一句是否成功都会执行后面一句
既然排除了你的a.txt后面没有回车问题就在这里了。
建议你在调试的时候把开头的 @echo off取消,这样可以看到结果,然后在pause后面加上一句exit,避免最后还执行一次。
另外你也可以在里面加些断点,只要在你想中断的地方加上pause.nul和echo %filename%就可以了。自己调试要比靠别人学得快。
第26楼 kcdsw 发表于 2006-04-06 13:33
中级用户 发帖 179 积分 404
调试完了 现在可以了 我跟踪完后发现是pause语句惹的祸
而以前我添加pause的时候是因为改了后面的一些命令

呵呵 耽误你的时间了 sorry

另外有个问题想问


if exist %1\. goto a

这个语句我本意是用来判断%1这个路径是不是文件夹的,但是始终不成功
提示说运算符怎么怎么的
第27楼 3742668 发表于 2006-04-06 18:56
荣誉版主 发帖 718 积分 2,013
害人啊,早知道让你自己去调试就完了。
所以对于你下面这个问题也决定让你自己去调试。

特别注意一下路径里面有空格的情况。
第28楼 kcdsw 发表于 2006-04-06 19:23
中级用户 发帖 179 积分 404
呵呵 那路径中有空格怎么办啊?
if exist "C:\Documents and Settings\new\桌面\新建文件夹"\.
第29楼 3742668 发表于 2006-04-06 19:29
荣誉版主 发帖 718 积分 2,013
加引号。
我这边是可以执行成功的。
不过我一般都不用if,我喜欢用其他的命令来完成然后根据errorlevel来判断。
比如你说的这种情况我记得上次有这么一个贴,我的代码好象是:
dir "C:\Documents and Settings\new\桌面\新建文件夹"\. >nul 2>nul && echo ....
或者不用&&和||,在下一句用%errorlevle%以及if errorlevel来判断。
始终觉得if除了defined比较可靠以外其他的都容易惹麻烦。
上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023