Board logo

标题: [文本处理] 求助:批处理如何提取指定字符之间的字符串? [打印本页]

作者: 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

  1. @echo off
  2. for /f "tokens=2,3 delims=-" %%i in ('dir/b') do (
  3. if "%%j" NEQ "x64" (echo %%i-%%j) else (echo %%i)
  4. )
复制代码

[ 本帖最后由 a794685135 于 2009-3-12 13:27 编辑 ]
作者: Batcher    时间: 2009-3-11 13:44

  1. @echo off
  2. set str1=windowsxp-kb959228-v2-x64-chs.exe
  3. set str2=windowsxp-kb959228-x64-chs.exe
  4. call :SubStr %str1%
  5. call :SubStr %str2%
  6. pause
  7. goto :eof
  8. :SubStr
  9. set str=%1
  10. 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