I am looking for some examples of a .bat OR .wsh script that can do the following:
Why not use dir?
Search current directory and all subdirs for dlls
dir /S *.dll
Search all of C for dlls
dir /S C:\*.dll
Save a report
dir /S C:\*.dll > report.txt
I would study Robocopy to see if this could help (the /L flag is a clue).
Put the following in a .bat file, say 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
is the user provided file mask.
%2
is the user provided directory to search first.
%3
is the user provided directory to search second.
Call from the command line to generate a report:
FindAll *.dll d:\dir1 d:\dir2 > dll_report.txt 2>&1
The <nul (set /p)
trick will output text to the console without a new line (courtesy Pax from this thread: How to code a spinner for waiting processes in a Batch file?)
The 2>&1
added when calling the batch file is needed to capture all the output to the file (courtesy aphoria from this thread: Underused features of Windows batch files)