标题: [文本处理] 求助:批处理如何提取指定字符之间的字符串? [打印本页]
作者: rui155197583 时间: 2009-3-11 13:33 标题: 求助:批处理如何提取指定字符之间的字符串?
我做了一个自动打系统补丁的程序,里面加了一些功能,每打一个补丁之前,先判断该补丁以前是否打过,打过了就不再运行了。其中遇到一个最大的难关,就是所有补丁中基本分为两类:一种是windowsxp-kb959228-v2-x64-chs.exe,一种是windowsxp-kb959228-x64-chs.exe,多了个-v2,就因为多了个-v2,所以不好提取了,我想做的是,如何想办法提取出“windowsxp-”与“-x64”之间的字符串就ok了,因为不管是这2种的哪种,只要提取这2个字符串之间的字符串,就可以拿着去注册表中查询,所以请达人指教!谢谢!
作者: a794685135 时间: 2009-3-11 13:44
- @echo off
- for /f "tokens=2,3 delims=-" %%i in ('dir/b') do (
- if "%%j" NEQ "x64" (echo %%i-%%j) else (echo %%i)
- )
复制代码
[ 本帖最后由 a794685135 于 2009-3-12 13:27 编辑 ]
作者: Batcher 时间: 2009-3-11 13:44
- @echo off
- set str1=windowsxp-kb959228-v2-x64-chs.exe
- set str2=windowsxp-kb959228-x64-chs.exe
- call :SubStr %str1%
- call :SubStr %str2%
- pause
- goto :eof
- :SubStr
- set str=%1
- echo %str:~10,-12%
复制代码
作者: rui155197583 时间: 2009-3-11 14:37
谢谢两位,非常好,我继续修改我的程序,等测试一段时间彻底没问题了,就将程序贴出来供像我一样的,新手学习。同时对巡查说声sorry,让我们忘却一些事情吧,呵呵
作者: hacker85 时间: 2009-3-11 19:32
我按二楼的程序试了一下 怎么不好使呢?! CMD窗口只是一闪就没有了!
我的文件夹下两个文件夹: test-0.txt test-1-0.txt
作者: Batcher 时间: 2009-3-11 20:13 标题: 回复 5楼 的帖子
因为你的文件夹中的横线数目和楼主的不同
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |