我正在寻找一些可以执行以下操作的.bat OR .wsh脚本示例:
TIA。
编辑:
哎呀,我应该澄清一下:这里有两个目录和两个搜索。
搜索1:
搜索2:
因此,如果搜索1在目录1中找到foo.dll,foo2.dll和foo3.dll,则搜索2应在目录2中查找foo.dll,foo2.dll和foo3.dll,并提供报告(简单列出每个找到的文件。
答案 0 :(得分:18)
为什么不使用dir?
搜索dll的当前目录和所有子目录
dir /S *.dll
搜索所有C的dll
dir /S C:\*.dll
保存报告
dir /S C:\*.dll > report.txt
答案 1 :(得分:9)
将以下内容放在.bat文件中,例如FindAll.bat
:
@echo OFF
for /f %%F in ('dir %2\%1 /s /b') do (
<nul (set /p msg=%%~nxF )
for /f %%G in ('dir %3\%%~nxF /s /b') do (
if exist %%G (
@echo found at %%G
)
)
)
%1
是用户提供的文件掩码。
%2
是用户首先搜索的目录。
%3
是用户提供的第二个搜索目录。
从命令行调用以生成报告:
FindAll *.dll d:\dir1 d:\dir2 > dll_report.txt 2>&1
<nul (set /p)
技巧会在没有新行的情况下将文本输出到控制台(来自此帖子的Pax礼貌:How to code a spinner for waiting processes in a Batch file?)
需要在调用批处理文件时添加2>&1
来捕获文件的所有输出(来自此帖子aphoria提供Underused features of Windows batch files)
答案 2 :(得分:-3)
我会研究Robocopy以确定这是否有帮助(/ L标志是一个线索)。