正在处理系统文件搜索脚本以检索目录中所有文档的名称,以及包含确定的搜索字符串的所有子目录 . 基本上,它会记录搜索结果 . 让它也搜索文件名会很好,但这还不重要 .
码:
@echo off
echo - Will search all files in current directory, and subdirectories.
echo - Will ignore case sensitivity.
echo - Will only search for term within readable documents.
set /p searchfilter=Search Filter:
set results=%CD%\results.txt
echo Searching...
echo Results: > "%results%"
for /f "usebackq tokens=*" %%i in (`dir /s/b/A:-D/o:e`) do (
find /i "%searchfilter%" "%%~nxi" >nul && echo %%~nxi >> "%results%"
)
echo Search complete.
pause
运行:系统向用户请求字符串 . 然后,系统保存结果文件的句柄(认为可以解决问题,但没有) . 系统然后从目录和子目录中过滤所有文件(不包括文件夹),打印文件的裸名称(带扩展名),在此处继续扫描每个文件以查找搜索字符串,并将所有正搜索结果保存到文本文件 .
它似乎在许多文件上,我收到“文件未找到 - ”错误,并需要帮助识别它 . 我的猜测是,它与尝试查找没有目录句柄的子目录文件有关 .
2 回答
应该解决你的问题,因为你已经标记了自己 . 如果要搜索的子文件中存在名为
fred.txt
的文件,但扫描子树的根目录中的mot,则会出现File not found
错误 .您可以选择是回显
results
的名称和扩展名,还是回显完整的文件名,当然 . 就个人而言,我会使用`%% i并获得整个事情 .我也会改变
至
但在这种情况下,这只是风格问题 .
这应该为您提供一个工具来搜索当前文件夹树中的文件名,并将结果记录到文件中 - 格式为
c:\path\file.ext
.将
searchstring
替换为您的搜索字词,如果要搜索所有文件,请删除*.doc
,或者如果要过滤多种文件类型,请将其替换为*.doc *.txt *.ini *.src
.