[DOS BATCH]檢查本機安裝軟體

[DOS BATCH]檢查本機安裝軟體

紀錄一下過程。

問題描述

想要整理本機電腦安裝軟體的清單出來,順便記錄上電腦名稱及使用IP。

步驟

1. 使用環境變數%COMPUTERNAME%取得電腦名稱。

image

2. 使用WMIC(WMI Command)讀取IP位置。

image

3. 使用WMIC讀取安裝軟體清單。

image

4. 將上列這些步驟彙整到批次檔,並且調整格式輸出成網頁。


@if not "%OS%"=="Windows_NT" goto :EXIT
@if "%1"=="" (set INFO=echo && set SEXIT=I) else (set INFO=rem && set SEXIT=O)
%INFO% *****************************************************
%INFO% 功能描述:列出軟體安裝清單
%INFO% 撰寫日期:2015/11/4
%INFO% 作者:林大貓
%INFO% 參考網址
%INFO% http://blog.csdn.net/kimiqiu/article/details/4806167
%INFO% *****************************************************
rem 如果不需要輸入參數,請將下列一行註解
rem @if "%SEXIT%"=="I" goto :EXIT
@title 列出軟體安裝清單
@cls
@color 07
:MAIN
echo STARTTIME:%date% %time%

rem 執行檔名稱
set exeFileName=wmic

rem 格式檔位置(*.xsl)
rem 預設資料夾為%WINDIR%\System32\wbem\zh-TW(中文版作業系統)
rem 找不到請更換為%WINDIR%\System32\wbem\en-US

set xslfile=%WINDIR%\System32\wbem\zh-TW\htable


rem 清單檔案位置
set exportFileName=D:\PCInfo.html
echo %COMPUTERNAME%軟體安裝清單 > %exportFileName%
echo 產生時間:%date% %time% >> %exportFileName%  
rem 取得IP位置
%exeFileName% NICCONFIG where IPEnabled=TRUE get IPADDRESS /FORMAT:"%xslfile%"|more >> %exportFileName%
rem 軟體安裝清單
%exeFileName% PRODUCT GET NAME,VERSION /FORMAT:"%xslfile%"|more >> %exportFileName% 

echo ENDTIME:%date% %time%

:EXIT
%exportFileName%
@echo on

結果畫面

image

注意事項

格式檔(*.xsl)的位置會隨作業系統的語系及版本有所不同,%WINDIR%\System32\wbem\zh-TW(中文版作業系統),

找不到更換為%WINDIR%\System32\wbem\en-US,或者把所有格式檔複製過去。

image

參考資料

Windows WMIC命令使用詳解(附實例)

vbs腳本大全

wmic error (invalid XSL format) in windows7

WMIC process list bug?