![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 11:54 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]批处理问题,虚心向高手请教?[求助] |
| 可打印版本 2,719 / 13 |
| 第1楼 huaqingyuan | 发表于 2003-10-01 00:00 |
| 初级用户 发帖 15 积分 183 | |
|
[求助]批处理问题,虚心向高手请教?[求助] 我想用批处理完成以下功能,请求帮助
a.在文本中查找指定字符串"LIZI",若找到将其空格后的文本以空格为界付值给出%1,%2,%3,%4,%5,%6,%7,%8,%9……直到检测到回车符,并退出. 若找不到就在这文本里加一行,內容是一字符串"LIZI"开头的并加入%1,%2,%3,%4,%5,%6,%7,%8,%9……的默认值也就是第一行的值 例在AAA.TXT中有 name date1 date2 date3 lizi 001 002 003 在AAA.TXT找lizi就有%1=001,%2=002,%3=003 在AAA.TXT找name4,AAA.TXT中无变为 name date1 date2 date3 lizi 001 002 003 name4 date1 date2 date3 b.在批处理中进行数学运算,并付值给变量 |
|
| 第2楼 huaqingyuan | 发表于 2003-10-02 00:00 |
| 初级用户 发帖 15 积分 183 | |
|
没人会吗?
|
|
| 第3楼 iceboy | 发表于 2003-10-02 00:00 |
| 银牌会员 发帖 512 积分 1,681 | |
|
似乎要用到 debug,最省事的方法使用 QB/C
|
|
| 第4楼 huaqingyuan | 发表于 2003-10-02 00:00 |
| 初级用户 发帖 15 积分 183 | |
|
不知增强的脚本工具行不行
如果批处理不行的话, 请高手帮忙写个程序完成 |
|
| 第5楼 huaqingyuan | 发表于 2003-10-04 00:00 |
| 初级用户 发帖 15 积分 183 | |
|
高手在那啊?
出来帮忙啊!,这个搞出来用处很大的 |
|
| 第6楼 iceboy | 发表于 2003-10-04 00:00 |
| 银牌会员 发帖 512 积分 1,681 | |
|
先说说你的设想吧,也许可以换一个方法做
|
|
| 第7楼 huaqingyuan | 发表于 2003-10-05 00:00 |
| 初级用户 发帖 15 积分 183 | |
|
关于A问题,我主要是想在DOS下查找关于某个记录的资料,
比如,在网吧用GHOST时,用户名和IP等都一样,这样只要我先用工具获取网卡号 然后查找关于网卡号的记录,就可以得到IP,计算机名等, 能实现这个在无盘PXE中有更大的作用 关于B问题,eval.exe可以实现,但是它没有付值给变量.也许是我没有正确的使用, 麻烦大家想想办法 |
|
| 第8楼 willsort | 发表于 2003-10-15 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re huaqingyuan:
关于问题A,因为不了解你的具体需求,所以只写了一个空泛的框架,如果要符合你的要求,应该需要修改某些细节。 关于问题B,我的代码提供的是将命令输出结果保存为环境变量的通用办法,当然存在其他的解决方法,只不过这种更简单一些;至于eval.exe的细节我不是很清楚。 以下附录二者源代码,完整内容请下载文件打开附件(第一次使用文件上传功能,如果出错请见谅) ::OP.BAT @ECHO OFF SET TABLE=sample.dat IF == GOTO OPHELP IF NOT EXIST %TABLE% GOTO OPERROR1 :OPMAIN FIND " %1 " %TEMP%\RECORD.BAT IF NOT ERRORLEVEL 1 GOTO OPLIST IF NOT ERRORLEVEL 2 GOTO OPAPPEND GOTO OPERROR2 :OPLIST ECHO Record "%1" matched. ECHO. ECHO >%1.BAT @ECHO OFF ECHO >>%1.BAT ECHO 姓名: %1 ECHO >>%1.BAT ECHO 姓别: %%1 ECHO >>%1.BAT ECHO 年龄: %%2 ECHO >>%1.BAT ECHO 爱好: %%3 %%4 %%5 %%6 %%7 %%8 %%9 CALL %TEMP%\RECORD.BAT ECHO. ECHO Record "%1" displayed. DEL %TEMP%\RECORD.BAT DEL %1.BAT GOTO OPEND :OPAPPEND ECHO Record "%1" NOT matched! ECHO. IF == GOTO OPEND ECHO %1 %2 %3 %4 %5 %6 %7 %8 %9 >> %TABLE% ECHO. ECHO Record "%1" appended. GOTO OPEND :OPHELP ECHO. ECHO Sample of Table Operation. ECHO Usage: %0 record-key ECHO or: %0 record-key data1 data2 data3 ECHO. GOTO OPEND :OPERROR1 ECHO. ECHO Data file "%TABLE%" NOT exist! ECHO. GOTO OPEND :OPERROR1 ECHO. ECHO Failed to match record "%1"! ECHO. GOTO OPEND :OPEND SET TABLE= ::GETVALUE.BAT @ECHO OFF IF NOT == GOTO GVMAIN :GVHELP ECHO. ECHO Get result of command with environment variable. ECHO Usage: %0 command ECHO Exaple: %0 CD ECHO. GOTO GVEND :GVMAIN SET COMMAND=%1 %2 %3 %4 %5 %6 %7 %8 %9 COPY SETENV.DAT %TEMP%\SETENV.BAT > NUL %COMMAND% >> %TEMP%\SETENV.BAT CALL %TEMP%\SETENV.BAT IF == GOTO GVEND ECHO Value of variable is %#VAR#%. DEL %TEMP%\SETENV.BAT SET COMMAND= SET #VAR#= :GVEND |
|
| 第9楼 huaqingyuan | 发表于 2003-10-26 00:00 |
| 初级用户 发帖 15 积分 183 | |
|
谢谢!
|
|
| 第10楼 huaqingyuan | 发表于 2003-10-26 00:00 |
| 初级用户 发帖 15 积分 183 | |
|
由于前些时有事,没看到贴,今天看到了,试了一下,关于A问题的加记录部分好象有点问题,也许是我不会用,请willsort兄告知
|
|
| 第11楼 willsort | 发表于 2003-10-31 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
| 第12楼 huaqingyuan | 发表于 2003-11-17 00:00 |
| 初级用户 发帖 15 积分 183 | |
|
在次感谢willsort,你确实是批处理的高手
|
|
| 第13楼 huaqingyuan | 发表于 2003-11-17 00:00 |
| 初级用户 发帖 15 积分 183 | |
|
修改后的文件现在没法下了,你可以直接贴上来吗?
谢谢了 |
|
| 第14楼 willsort | 发表于 2003-11-19 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re huaqingyuan:
我对原贴的代码已经做了修改,主要有以下几点: 1、:OPAPPEND中的第四句,ECHO之后多增加了一个空格; 主要是为了通过FIND " %1 ",以避免ABCD与BCD的误匹配; 2、将变量串的引用标记由单引号改为了双引号; 论坛似乎对单引号的处理比较特别,总是将它双倍显示,对原代码没有什么影响; 3、其他一些拼写错误; |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |