@echo off setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION set ofn=5_startup.csv if exist %ofn% del %ofn% > nul rem --- 詳細情報取得 --- rem msinfo32 /report msinfo.txt /category -all +SWEnvStartupPrograms rem msinfo32 /report msinfo.txt /showcategories msinfo32 /report msinfo.txt rem --- 文字コードの問題で処理できないので一旦変換 --- type msinfo.txt > msinfo2.txt del msinfo.txt > nul rem --- 各情報毎に分解 --- for /f "skip=2 tokens=1-11 delims= " %%a in ( msinfo2.txt ) do ( set dat=%%a if "!dat:~0,1!"=="[" ( set dt=0 rem if "%%a"=="[システムの要約]" set dt=2 rem if "%%a"=="[アダプター]" set dt=2 rem if "%%a"=="[ドライブ]" set dt=2 rem if "%%a"=="[ディスク]" set dt=2 rem if "%%a"=="[システム ドライバー]" set dt=11 rem if "%%a"=="[環境変数]" set dt=3 rem if "%%a"=="[実行中のタスク]" set dt=10 rem if "%%a"=="[読み込まれているモジュール]" set dt=6 rem if "%%a"=="[サービス]" set dt=10 rem if "%%a"=="[プログラムのグループ]" set dt=3 if "%%a"=="[スタートアップ プログラム]" set dt=4 rem if "%%a"=="[OLE 登録]" set dt=2 if not !dt!==0 ( echo\ >> %ofn% echo "%%a" >> %ofn% ) ) if not !dt!==0 if not "%%a"=="" if not "%%b"=="" ( if !dt!==2 echo "%%a","%%b" >> %ofn% if !dt!==3 echo "%%a","%%b","%%c" >> %ofn% if !dt!==4 echo "%%a","%%b","%%c","%%d" >> %ofn% if !dt!==6 echo "%%a","%%b","%%c","%%d","%%e","%%f" >> %ofn% if !dt!==10 echo "%%a","%%b","%%c","%%d","%%e","%%f","%%g","%%h","%%i","%%j" >> %ofn% if !dt!==11 echo "%%a","%%b","%%c","%%d","%%e","%%f","%%g","%%h","%%i","%%j","%%k" >> %ofn% ) ) msinfo2.txt > nul