[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
原来跟我文本的版本不一样..=.=
加了个括号, 1,5,8 改1,5,8*
  1. @echo off
  2. set /a n=0
  3. for /f "delims=*" %%i in ('findstr /i /n "class=.time." a.txt') do (
  4.         set "var=%%i"
  5.         setlocal enabledelayedexpansion
  6.         if !n! LEQ 0 (
  7.             for /f "tokens=4 delims=:<>" %%a in ("!var!") do (
  8.                 set top=%%a
  9.                 set top=!top:/=      !
  10.                 echo !top!
  11.               )
  12.         )else (
  13.             for /f "tokens=1,5,8* delims=:<>" %%a in ("!var!") do (
  14.                 set /a cow=%%a
  15.                 set "uname=%%b"
  16.                 set "pbdate=%%c"
  17.                 set "d=%%d"
  18.                 set "pbdate=!pbdate: =-!:!d:~0,2!"
  19.                 set/p=!uname! !pbdate! <nul
  20.                 call :getpb !cow!
  21.               )
  22.         )
  23.         endlocal
  24.         set /a n+=1
  25. )
  26. pause
  27. goto :eof
  28. :getpb
  29. for /f "skip=%1 tokens=3,5 delims=<>" %%x in (a.txt) do (
  30.     set /a l+=1
  31.     if !l! EQU 1 (set/p=%%x%%y <nul )  else (
  32.         set/p=%%x <nul
  33.         echo,
  34.         goto :eof
  35.     )
  36. )
复制代码

[ 本帖最后由 caruko 于 2009-12-14 11:56 编辑 ]
1

评分人数

    • batman: 为你的参与加分,继续努力PB + 3

TOP

原帖由 batman 于 2009-12-12 17:35 发表
if !l! EQU 1 set/p=%%x%%y  


这个是去掉PB后面的空格.. 只不过都是输出到控制台,没>>B.TXT
本地运行正常啊...晕,昨天日期格式还正确的,今天就.... if 后也还得加个括号了

就是findstr /n 得到每个class=time(除了第一个time)的cow,然后for /f skip=cow 来取得后续几个元素
%l% 的值代表class=time 下面的第几行
因为 被评分者 看错成评分者了,所以 只取了2次就goto :eof
不过 帖子地址,被评分者 分别是%l%=5 ,6 时的行,稍扩展一下也能达到新的要求

[ 本帖最后由 caruko 于 2009-12-14 11:48 编辑 ]

TOP

回上..
效率确实不高 =.= 因为第2次读了文本
只不过对findstr不太熟,设计了几个复杂点的正则,结果都不对..

TOP

返回列表