|
huaqingyuan
初级用户
积分 183
发帖 15
注册 2003-7-7
状态 离线
|
『楼 主』:
[求助]批处理问题,虚心向高手请教?[求助]
我想用批处理完成以下功能,请求帮助
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.在批处理中进行数学运算,并付值给变量
[此贴子已经被作者于2003-10-5 9:53:35编辑过]
|
|
2003-10-1 00:00 |
|
|
huaqingyuan
初级用户
积分 183
发帖 15
注册 2003-7-7
状态 离线
|
|
2003-10-2 00:00 |
|
|
iceboy
银牌会员
积分 1681
发帖 512
注册 2003-8-2
状态 离线
|
『第
3 楼』:
似乎要用到 debug,最省事的方法使用 QB/C
|
Somehow somewhere I've got to choose.
No matter if it is win or lose. |
|
2003-10-2 00:00 |
|
|
huaqingyuan
初级用户
积分 183
发帖 15
注册 2003-7-7
状态 离线
|
『第
4 楼』:
不知增强的脚本工具行不行
如果批处理不行的话,
请高手帮忙写个程序完成
|
|
2003-10-2 00:00 |
|
|
huaqingyuan
初级用户
积分 183
发帖 15
注册 2003-7-7
状态 离线
|
『第
5 楼』:
高手在那啊?
出来帮忙啊!,这个搞出来用处很大的
|
|
2003-10-4 00:00 |
|
|
iceboy
银牌会员
积分 1681
发帖 512
注册 2003-8-2
状态 离线
|
『第
6 楼』:
先说说你的设想吧,也许可以换一个方法做
|
Somehow somewhere I've got to choose.
No matter if it is win or lose. |
|
2003-10-4 00:00 |
|
|
huaqingyuan
初级用户
积分 183
发帖 15
注册 2003-7-7
状态 离线
|
『第
7 楼』:
关于A问题,我主要是想在DOS下查找关于某个记录的资料,
比如,在网吧用GHOST时,用户名和IP等都一样,这样只要我先用工具获取网卡号
然后查找关于网卡号的记录,就可以得到IP,计算机名等,
能实现这个在无盘PXE中有更大的作用
关于B问题,eval.exe可以实现,但是它没有付值给变量.也许是我没有正确的使用,
麻烦大家想想办法
|
|
2003-10-5 00:00 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
8 楼』:
Re huaqingyuan:
关于问题A,因为不了解你的具体需求,所以只写了一个空泛的框架,如果要符合你的要求,应该需要修改某些细节。
关于问题B,我的代码提供的是将命令输出结果保存为环境变量的通用办法,当然存在其他的解决方法,只不过这种更简单一些;至于eval.exe的细节我不是很清楚。
以下附录二者源代码,完整内容请下载文件打开附件(第一次使用文件上传功能,如果出错请见谅)
::OP.BAT
@ECHO OFF
SET TABLE=sample.dat
IF [%1]==[] 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 [%4]==[] 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 [%1]==[] 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 [%#VAR#%]==[] GOTO GVEND
ECHO Value of variable is %#VAR#%.
DEL %TEMP%\SETENV.BAT
SET COMMAND=
SET #VAR#=
:GVEND
[此贴子已经被作者于2003-11-19 11:24:58编辑过]
|
※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2003-10-15 00:00 |
|
|
huaqingyuan
初级用户
积分 183
发帖 15
注册 2003-7-7
状态 离线
|
|
2003-10-26 00:00 |
|
|
huaqingyuan
初级用户
积分 183
发帖 15
注册 2003-7-7
状态 离线
|
『第
10 楼』:
由于前些时有事,没看到贴,今天看到了,试了一下,关于A问题的加记录部分好象有点问题,也许是我不会用,请willsort兄告知
|
|
2003-10-26 00:00 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
11 楼』:
Re huaqingyuan:
抱歉,源程序出了点小问题,怪我调试不周。现将修改后的文件附上:打开附件
若有其他问题,请及时告知。
[此贴子已经被作者于2003-10-31 8:47:31编辑过]
|
※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2003-10-31 00:00 |
|
|
huaqingyuan
初级用户
积分 183
发帖 15
注册 2003-7-7
状态 离线
|
『第
12 楼』:
在次感谢willsort,你确实是批处理的高手
|
|
2003-11-17 00:00 |
|
|
huaqingyuan
初级用户
积分 183
发帖 15
注册 2003-7-7
状态 离线
|
『第
13 楼』:
修改后的文件现在没法下了,你可以直接贴上来吗?
谢谢了
|
|
2003-11-17 00:00 |
|
|
willsort
元老会员
Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
14 楼』:
Re huaqingyuan:
我对原贴的代码已经做了修改,主要有以下几点:
1、:OPAPPEND中的第四句,ECHO之后多增加了一个空格;
主要是为了通过FIND " %1 ",以避免ABCD与BCD的误匹配;
2、将变量串的引用标记由单引号改为了双引号;
论坛似乎对单引号的处理比较特别,总是将它双倍显示,对原代码没有什么影响;
3、其他一些拼写错误;
|
※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2003-11-19 00:00 |
|