![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-05 07:59 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]纯DOS下的一个批处理,复杂。。请高手帮忙看看 |
| 可打印版本 1,045 / 7 |
| 第1楼 xiaofking | 发表于 2007-06-22 14:18 |
| 初级用户 发帖 31 积分 72 | |
|
[求助]纯DOS下的一个批处理,复杂。。请高手帮忙看看 前提:find.exe findstr.exe gdisk.exe ghost.exe abc.bat在同一目录下,以下为abc.bat内容
Gdisk 1 >c:\ggg.txt if not exist c:\ggg.txt echo error1&goto end findstr /i "FAT32 NTFS" c:\ggg.txt>nul&&set flag1=1||echo error2&goto end findstr /i "DIAGNOSTIC UNKNOWN" c:\ggg.txt>nul&&set flag2=1||( find /i "AAAA" c:\ggg.txt>nul&&(Ghost /a)||( echo error3”&goto end ) ) find /i "BBBB" c:\ggg.txt>nul&&set flag3=1 if defined flag1 if defined flag2 if defined flag3 Ghost /b :end pause Gdisk的功能是生成一个分区表,这段批处理是从生成的ggg.txt里判断分区类型并执行不同的ghsot 问题1:纯dos下for没有开关,是否能用第三方软件如strings来解决生成ggg.txt的问题,也就是说将上面的批处理修改成不要在C盘生成ggg.txt就能达到与上面同样的效果(纯dos是否一定要生成临时文件?) 问题2:abc.bat批处理在纯dos下执行后出现很多错误(echo没有关) F:\>abc.bat F:\>gdisk.exe 1 >C:\ggg.txt F:\>if not exist c:\ggg.txt echo error1&goto end F:\>findstr /i "FAT32 NTFS" c:\ggg.txt>nul&&set flag1=1||echo error&goto end Syntax error F:\>findstr /i "DIAGNOSTIC UNKNOWN" c:\ggg.txt>nul&&set flag2=1||( Syntax error F:\> find /i "AAAA" c:\ggg.txt>nul&&(Ghost /a)||( Syntax error F:\> echo error3”&goto end error3”&goto end F:\> ) Bad command or file name F:\>) Bad command or file name F:\>find /i "BBBB" c:\ggg.txt>nul&&set flag3=1 File creation error F:\>if defined flag1 if defined flag2 if defined flag3 Ghost /b Syntax error 不知道我写得够不够清楚,有不清楚的麻烦大家跟贴,我是确实搞不懂为什么这段批处理会出现这么多错误了 |
|
| 第2楼 zasxcdfv | 发表于 2007-06-22 14:35 |
| 初级用户 发帖 75 积分 152 | |
|
我是新手、。、很多地方我不清楚楼主这么写会不会出问题,因此也不敢肯定的判断什么。不过作为我个人习惯,findstr后面我习惯用errorlevel if else判断结果。一大堆的&&||很容易不小心就弄出错误来。
有一些基本的错误比如多写了个符号之类的,楼主应该可以检查出来。 最后那段if if if应该加上括号把? |
|
| 第3楼 lxmxn | 发表于 2007-06-22 16:22 |
| 版主 发帖 4,938 积分 11,386 | |
|
楼主需要注意,纯DOS下的批处理和xp下的有很多的不同,很多xp下能用的,DOS下就不能用了。
|
|
| 第4楼 bob1989 | 发表于 2007-06-22 19:26 |
| 中级用户 发帖 144 积分 322 | |
|
findstr.exe在纯DOS下能用吗``?
|
|
| 第5楼 xiaofking | 发表于 2007-06-22 22:07 |
| 初级用户 发帖 31 积分 72 | |
|
难道findstr在纯DOS下还不能用???
|
|
| 第6楼 xiaofking | 发表于 2007-07-07 23:09 |
| 初级用户 发帖 31 积分 72 | |
|
旧贴新顶啊,还没解决
|
|
| 第7楼 lxmxn | 发表于 2007-07-08 06:38 |
| 版主 发帖 4,938 积分 11,386 | |
|
不是findstr能不能用的問題,是批處理的語法格式在純DOS下無法識別。
比如你的括號分行寫,在DOS下就不成。 [ Last edited by lxmxn on 2007-7-8 at 06:39 AM ] |
|
| 第8楼 huzixuan | 发表于 2007-07-08 07:11 |
| 高级用户 发帖 219 积分 537 来自 芜湖 | |
|
findstr 在DOS下就用不起来
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |