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

[文本处理] [已解决]批处理中findstr命令怎样截取指定字符串?

本帖最后由 lovealei 于 2011-8-27 09:37 编辑
  1. 2011-08-20 01:49:40 29696328 INFO  收到TCP命令101--,530427199305060730,会员用户(i1:0, i2:0, i3:0, ClientState:0, s1:张哲(读), s2:530427199305060730, s3:张哲(读);530427199305060730;11;1;530427199305060730;;;;;-2209190400000;0;94555341023936144802;530427199305060730;;;;;;;AH9wONdF4Yw=;;;1;1313776213578;, IsRemove:0)
复制代码
如何用findstr 截取 “张哲” 这二个字,
  1. set /p USERID=
  2. for /f "delims=:" %%i in ('findstr /i "%USERID%" "logs.log"^|findstr /i "s1:"') do (
  3.     set name=%%i )
复制代码
这样为什么不能截取到呢


USEID = 530427199305060730
如果要截取s3:张哲(读); 中的 张哲 要怎么写呢?以那个为分隔符,以那个作为搜索目标
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

谢谢版主,达到我需要的目的了

TOP

本帖最后由 lxzzr 于 2011-8-26 19:56 编辑

回复 3# lovealei

什么叫“满足条件 USERID=530427199305060730 ”,我没发现“USERID”字符串啊

明白你的意思了
  1. @echo off
  2. set /p USERID=input:
  3. for /f "delims=" %%a in ('findstr "%USERID%" logs.log') do set var="%%a"
  4. %var:*s3:=set var=%
  5. for /f "tokens=1 delims=(;" %%a in ("%var:~0,-2%") do echo %%a
  6. pause
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

本帖最后由 lovealei 于 2011-8-26 19:34 编辑
  1. 2011-08-20 01:49:40 29696328 INFO  收到TCP命令101--,530427199305060730,会员用户(i1:0, i2:0, i3:0, ClientState:0, s1:张哲(读), s2:530427199305060730, s3:张哲(读);530427199305060730;11;1;530427199305060730;;;;;-2209190400000;0;94555341023936144802;530427199305060730;;;;;;;AH9wONdF4Yw=;;;1;1313776213578;, IsRemove:0)
复制代码
找是找到了,但是VAR里的内容不在是批处理里面,而是一个文件 logs.log 而且要满足条件 USERID=530427199305060730 时

TOP

如果要截取s3:张哲(读); 中的 张哲 要怎么写呢?以那个为分隔符,以那个作为搜索目标...
  1. @echo off
  2. set var="2011-08-20 01:49:40 29696328 INFO  收到TCP命令101--,530427199305060730,会员用户(i1:0, i2:0, i3:0, ClientState:0, s1:张哲(读), s2:530427199305060730, s3:张哲(读);530427199305060730;11;1;530427199305060730;;;;;-2209190400000;0;94555341023936144802;530427199305060730;;;;;;;AH9wONdF4Yw=;;;1;1313776213578;, IsRemove:0)"
  3. %var:*s3:=set var=%
  4. for /f "tokens=1 delims=(;" %%a in ("%var:~0,-2%") do echo %%a
  5. pause
复制代码

TOP

返回列表