Dumpbin Dependentsで調べた依存ファイルがそのPC内にちゃんとあるか調べるバッチを作る

これでいけそう?

未確認なので、試してみる。

@echo off
setlocal enabledelayedexpansion

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0

:: 引数で渡されたファイル名を取得
set INPUT_FILE=%1

:: 一時的に出力ファイルを作成
set TEMP_FILE=%~dp0\dumpbin_output.txt

:: dumpbin /dependents を実行して、その結果を一時ファイルに保存
dumpbin /dependents "%INPUT_FILE%" > "%TEMP_FILE%"

:: 出力からDLLを抽出して表示
echo Extracting dependent DLLs from %INPUT_FILE%...

:: "dll" という文字列が含まれる行を抽出
for /f "tokens=*" %%a in ('findstr /i "dll" "%TEMP_FILE%"') do (
    set line=%%a
    echo ------ !line! ------
    where !line!
    rem echo %errorlevel%
)

:: 一時ファイルを削除
del "%TEMP_FILE%"

endlocal
pause

出力はこんな感じ。

**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.11.2
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
Extracting dependent DLLs from C:\Users\masa\source\repos\HyperDumpBin\HyperDumpBin\bin\x64\Debug\net8.0\WindowsProject4.exe...
--------------------
------ USER32.dll ------
C:\Windows\System32\user32.dll
------ VCRUNTIME140D.dll ------
C:\Windows\System32\vcruntime140d.dll
------ ucrtbased.dll ------
C:\Windows\System32\ucrtbased.dll
------ KERNEL32.dll ------
C:\Windows\System32\kernel32.dll
続行するには何かキーを押してください . . .

------ xxxx.dll ------のあとの行に、一つもdllが表示されてなかったら、そのdllはないのだと思われる。

あー、でも、dumpbin、開発PCじゃないPCには入ってないな。。。。

dumpbinだけ開発PCでやって、そのdllについて、対象のPCで、whereすればいいのか、、、
バッチ書いたけど、前提が間違えてた(dumpbinは対象PCには入ってない)ので手動でwhereやるしかないか、、、