无忧启动论坛

标题: 请帮我修改一下查找子串在另一字串中位置的grub4dos批处理 [打印本页]

作者: qj_tzy    时间: 2014-1-17 22:44
标题: 请帮我修改一下查找子串在另一字串中位置的grub4dos批处理
本帖最后由 qj_tzy 于 2014-1-18 13:20 编辑

请帮我修改一下查找子串在另一字串中位置的grub4dos批处理

若子串值、另一字串值已赋给变量substr、instr,现查找substr是否在instr中(不区分大小写),若在则返回所在位置,若不在则返回0。
我写了以下批处理,但未调试通过,诚请各位网友帮我修改一下,谢谢!

!BAT
set /l instr=%1
set l_instr=%@retval%
set /l substr=%2
set l_substr=%@retval%
set site=0

:loop
call echo %^instr:~%site%,%l_substr%%% | set strtemp=
set /a site=%site%+1 > nul
if "%substr%"=="%strtemp%" exit
if "%site%"<=%l_instr% goto :loop

:eof

作者: chenall    时间: 2014-1-18 08:17
可以直接使用cat命令
set instr=abcdddddfffadsf
set str_len=%@retval%
set substr=cd
write (md)0x200+1 %instr%
cat --locatei=%substr% --number=1 (md)0x200+1,%str_len% | set site=

最终的site变量就是你所需要的位置,如果该变量为空就是没有找到.

作者: qj_tzy    时间: 2014-1-18 13:13
chenall 发表于 2014-1-18 08:17
可以直接使用cat命令
set instr=abcdddddfffadsf
set str_len=%@retval%

谢谢,这样太简捷了,没想到把主串值写入内存、再用cat 命令来查找的方法,只想到用cat来查找文件中的内容了。




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3