查找文件夹及子目录文档内容
批处理吧
全部回复
仅看楼主
level 2
f308ding 楼主
各位大神,请问我想查找某个文件夹及其子目录下的文档包含某个词,并将其路径列出来输出到固定txt文件,批处理改怎么做?比如:D:\abc文件夹下有一批doc文档,需要查找里面有“请示”这个词的文档
2020年10月28日 09点10分 1
level 2
可以用py做,很简单的逻辑
2020年10月30日 16点10分 2
具体能写个代码给我吗?谢谢大神!
2020年11月01日 03点11分
level 9
以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文档文件放一起双击运行
/*&echo off&cls
rem 搜索/查找文档内容包含指定关键字的word文档/doc文档
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
cd /d "%~dp0"
set "findword=请示"
type "%~f0"|cscript -nologo -e:jscript "%~f0">"%tmp%\v.v"
dir /a-d-h/b/s *.doc|cscript -nologo -e:vbscript "%tmp%\v.v" "%findword%"
echo;%#% +%$%%$%/%_% %z%
pause
exit
*/
var text=WSH.StdIn.ReadAll();
var vbs=text.match(/\/\*\r?\n([\s\S]+?)\*\/\s*$/);
WSH.echo(vbs[1]);
/*
On Error Resume Next
Set fso=CreateObject("Scripting.FileSystemObject")
Set wd=CreateObject("Word.application")
If Err.Number <> 0 Then
WSH.StdErr.WriteLine "MS Word is not installed"
WSH.Quit
End If
On Error Goto 0
wd.Visible=False
findword=WSH.Arguments(0)
Do While WSH.StdIn.AtEndOfStream<>True
line=WSH.StdIn.ReadLine
Set file=fso.GetFile(line)
If Left(file.shortname, 2) <> "~$" Then
Set doc=wd.Documents.Open(file.Path,,,,"pwd")
If doc Is Nothing Then
doc.Close
wd.Quit
WSH.Quit
End If
If doc.ProtectionType = -1 Then
result=doc.Content.Find.Execute(findword)
If result=True Then
WSH.StdErr.WriteLine "[Yes]" & line
Else
WSH.StdErr.WriteLine "[No]" & line
End If
End If
doc.Close
End If
Loop
wd.Quit
WSH.Quit
*/
2020年11月02日 07点11分 5
感谢大神!
2020年11月04日 06点11分
1