标题: 记事本的查找问题
[打印本页]
作者: dragonamd
时间: 2008-8-24 00:33
标题: 记事本的查找问题
用BAT在记事本里查找第一个和第三个并显示出来查找到的内容,该怎么做啊
[
Last edited by dragonamd on 2008-8-24 at 12:34 AM ]
作者: lxmxn
时间: 2008-8-24 00:44
说得不明不白,不清不楚。
作者: dragonamd
时间: 2008-8-24 00:53
R02 u70.843 i-19.91 5-10.17 I5.641
U71.796 B-18.487 5-8.11 I4.556
G75.13 H-10.666 5-9.16 I-9.209
F75.13 5-7.27 H-10.666 I-9.209
我要查找的是第一个5开头的 也就是5-10.17 和第3个也是5开头的也就是
5-9.16
并显示出来 5-10.17 5-9.16
作者: terse
时间: 2008-8-24 01:49
这个意思吧
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
for %%j in (%%i) do (
set str=%%j
if "!str:~,1!"=="5" (
set/a n+=1
if !n! equ 1 echo %%j
if !n! equ 3 echo %%j&pause&exit
)))
作者: dragonamd
时间: 2008-8-24 03:46
terse大哥 是这个意思,但是忘记了要检测最新生成的文件
作者: HAT
时间: 2008-8-24 10:11
“忘记了要检测最新生成的文件”是怎么个意思?你什么地方提到过这个需求?
作者: dragonamd
时间: 2008-8-24 12:26
HAT大哥,我是忘记提到了,
作者: HAT
时间: 2008-8-24 12:34
不是有人告诉过你如何检测最新文件了吗,还没有学会?
http://www.cn-dos.net/forum/viewthread.php?tid=42377&fpage=2
作者: dragonamd
时间: 2008-8-24 12:49
呵呵,自己试过加上,但没有效果,可能我比较笨,
作者: HAT
时间: 2008-8-24 12:53
你的完整代码贴出来看看?
作者: dragonamd
时间: 2008-8-24 13:07
HAT 大哥我并没有代码,我是新手来这里学习的, 我按照你的给我的代码加在@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
for %%j in (%%i) do (
set str=%%j
if "!str:~,1!"=="5" (
set/a n+=1
if !n! equ 1 echo %%j
if !n! equ 3 echo %%j&pause&exit
)))
上,好像显示的是没有定义变量
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /b /tc /o-d /a a.txt')
do (
for %%j in (%%i) do (
set str=%%j
if "!str:~,1!"=="5" (
set/a n+=1
if !n! equ 1 echo %%j
if !n! equ 3 echo %%j&pause&exit
)))
不知道我加的对不对
[
Last edited by dragonamd on 2008-8-24 at 01:13 PM ]
作者: HAT
时间: 2008-8-24 13:23
看看dir的帮助,理解一下dir /b /tc /o-d /a
*.txt为何能否查找最新文件。
作者: dragonamd
时间: 2008-8-24 13:46
dir /b /tc /o-d /a 加上这个也不会检测最新的,。打开BAT直接就关闭了
作者: HAT
时间: 2008-8-24 14:01
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('dir /b /tc /o-d /a *.txt') do (
set NewFile=%%a
goto :next
)
:next
for /f "usebackq delims=" %%i in ("%NewFile%") do (
for %%j in (%%i) do (
set str=%%j
if "!str:~,1!"=="5" (
set/a n+=1
if !n! equ 1 echo %%j
if !n! equ 3 echo %%j&pause&exit
)
)
)
作者: dragonamd
时间: 2008-8-25 00:38
从中午改到晚上就是自己加不上 能在popup显示,。脑细胞死了不知道多少了,还得请大虾们指点
作者: HAT
时间: 2008-8-25 00:38
你是怎么改的?代码贴出来
作者: dragonamd
时间: 2008-8-25 01:59
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('dir /b /tc /o-d /a *.txt') do (
set NewFile=%%a
goto :next
)
:next
for /f "usebackq delims=" %%i in ("%NewFile%") do (
for %%j in (%%i) do (
set str=%%j
if "!str:~,1!"=="5" (
set/a n+=1
if !n! equ 1 echo %%j 这2行能不能显示在同一行上
if !n! equ 3 echo %%j&pause&exit 这2行能不能显示在同一行上
do mshta vbscript:createobject("wscript.shell").popup(" %ScdLine:~1,-1% %%j ")
)
)
)
作者: dragonamd
时间: 2008-8-25 18:36
有人可否回答一下,。新手都没人指点吗
作者: HAT
时间: 2008-8-25 19:35
这样可以吗?
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('dir /b /tc /o-d /a *.txt') do (
set NewFile=%%a
goto :next
)
:next
set str=
for /f "usebackq delims=" %%i in ("%NewFile%") do (
for %%j in (%%i) do (
set str=%%j
if "!str:~,1!"=="5" (
set/a n+=1
if !n! equ 1 set str=!str!%%j
if !n! equ 3 set str=!str!&goto :end
)
)
)
goto :eof
:end
mshta vbscript:createobject("wscript.shell").popup(" %ScdLine:~1,-1% !str! ")
不知道你的%ScdLine:~1,-1%从哪里来的,只好跟着你乱写了。
[
Last edited by HAT on 2008-8-26 at 12:35 AM ]
作者: dragonamd
时间: 2008-8-26 00:13
HAT大哥的代码多了一个DO,。呵呵,已经改好了,不过
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('dir /b /tc /o-d /a *.txt') do (
set NewFile=%%a
goto :next
)
:next
set str=
for /f "usebackq delims=" %%i in ("%NewFile%") do (
for %%j in (%%i) do (
set str=%%j
if "!str:~,1!"=="5" (
set/a n+=1
if !n! equ 1 set str=!str!%%j
if !n! equ 3 set str=!str!&goto :end
)
)
)
goto :eof
:end
mshta vbscript:createobject("wscript.shell").popup(" !str! !str! ")
这样只能显示一个,上面的1和3能不能同时显示在popup(" !str! !str! ") 不过这样做不成功,。希望大哥再帮忙修改一下,
作者: HAT
时间: 2008-8-26 00:35
为什么多了一个do呢?因为19楼的代码是从17楼拷贝的。
19楼已经更新,运行一下,结果贴出来看看。
作者: dragonamd
时间: 2008-8-26 00:40
是更新了,。但20楼的问题能解决吗?
作者: HAT
时间: 2008-8-26 00:49
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('dir /b /tc /o-d /a *.txt') do (
set NewFile=%%a
goto :next
)
:next
set str=
for /f "usebackq delims=" %%i in ("%NewFile%") do (
for %%j in (%%i) do (
set str=%%j
if "!str:~,1!"=="5" (
set/a n+=1
if !n! equ 1 set str1=%%j
if !n! equ 3 set str2=!str1!%%j&goto :end
)
)
)
goto :eof
:end
mshta vbscript:createobject("wscript.shell").popup(" !str2! !str2! ")