![]() |
中国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 |