Board logo

标题: 求助,BAT读取指定文本内容第几行并在Popup反映出来 [打印本页]

作者: dragonamd     时间: 2008-8-22 06:49    标题: 求助,BAT读取指定文本内容第几行并在Popup反映出来

用BAT检测C盘最新生成的.TXT文件名字并且读取文本内容的第2行然后用VBS 的Popup显示出这个文件的名字和内容,。
作者: HAT     时间: 2008-8-22 09:55

@echo off
for /f "tokens=*" %%\ in ('dir /b /tc /o-d /a C:\*.txt') do (
  set NewFile=%%\
  goto :next
)
:next
for /f "tokens=1,2* delims=:" %%a in ('findstr /n . "C:\%NewFile%"') do (
  if "%%a" equ "2" (
    set ScdLine=%%b
    goto :show
  )
)
:show
mshta vbscript:createobject("wscript.shell").popup("%ScdLine%")(window.close) & exit

作者: slore     时间: 2008-8-22 10:39
可以直接skip嘛
作者: HAT     时间: 2008-8-22 10:41

@echo off
for /f "tokens=*" %%\ in ('dir /b /tc /o-d /a C:\*.txt') do (
  set NewFile=%%\
  goto :next
)
:next
for /f "skip=1 tokens=*" %%a in ('findstr . "C:\%NewFile%"') do (
  set ScdLine=%%a
  goto :show
)
:show
mshta vbscript:createobject("wscript.shell").popup("%ScdLine%")(window.close) & exit

作者: dragonamd     时间: 2008-8-22 13:27
比如我的第2行中      (1656166)  能不能去掉括号直接是 1656166
作者: HAT     时间: 2008-8-22 16:18
全角括号()?
还是半角括号()?
作者: dragonamd     时间: 2008-8-22 19:00
(  是这样的
作者: HAT     时间: 2008-8-22 20:36

@echo off
for /f "tokens=*" %%\ in ('dir /b /tc /o-d /a C:\*.txt') do (
  set NewFile=%%\
  goto :next
)
:next
for /f "skip=1 tokens=*" %%a in ('findstr . "C:\%NewFile%"') do (
  set ScdLine=%%a
  goto :show
)
:show
mshta vbscript:createobject("wscript.shell").popup("%ScdLine:~1,-1%")(window.close) & exit