[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

我做了一个自动打系统补丁的程序,里面加了一些功能,每打一个补丁之前,先判断该补丁以前是否打过,打过了就不再运行了。其中遇到一个最大的难关,就是所有补丁中基本分为两类:一种是windowsxp-kb959228-v2-x64-chs.exe,一种是windowsxp-kb959228-x64-chs.exe,多了个-v2,就因为多了个-v2,所以不好提取了,我想做的是,如何想办法提取出“windowsxp-”与“-x64”之间的字符串就ok了,因为不管是这2种的哪种,只要提取这2个字符串之间的字符串,就可以拿着去注册表中查询,所以请达人指教!谢谢!

  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 编辑 ]

TOP

  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%
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

谢谢两位,非常好,我继续修改我的程序,等测试一段时间彻底没问题了,就将程序贴出来供像我一样的,新手学习。同时对巡查说声sorry,让我们忘却一些事情吧,呵呵

TOP

我按二楼的程序试了一下 怎么不好使呢?!  CMD窗口只是一闪就没有了!
我的文件夹下两个文件夹: test-0.txt    test-1-0.txt

TOP

回复 5楼 的帖子

因为你的文件夹中的横线数目和楼主的不同
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表