web-dev-qa-db-ja.com

WMIC-空の値が返されるかどうかを確認する方法は?

コンピューターのログを作成するためのバッチファイルを作成しています(PCをフォーマットする前にいくつかの情報を保存する必要があります...)

そこで、このログを作成するためのコマンドをいくつか見つけました。以下を参照してください。

rem -- Windows Version
wmic OS get Caption, OSArchitecture, ServicePackMajorVersion /format:htable > "%~dp0Config %computername%.html"

rem -- User Account
wmic USERACCOUNT get Caption,Name,PasswordRequired,Status /format:htable >> "%~dp0Config %computername%.html"

rem -- Installed Programs
wmic product get Description, InstallDate, Name, Vendor, Version /format:htable >> "%~dp0Config %computername%.html"

問題はこのコマンドにあります:

wmic nicconfig get Description, MACAddress, IPAddress, IPSubnet, DefaultIPGateway, DNSServerSearchOrder, DHCPEnabled /format:htable >> "%~dp0Config %computername%.html"

この場合、Macアドレス ..のアダプタのみを表示する必要があります。

それ以外の場合は、アダプタを有効にするだけを表示するためにこれを行います。

wmic NIC where NetEnabled=true get Name, Speed, PNPDeviceID /format:htable >> "%~dp0Config %computername%.html"

しかし今、私は空でない値をチェックする必要があります。空でない値が返されるかどうかを確認するにはどうすればよいですか? Macアドレスを持つ値のみを取るために?

私はこれを試しましたが、機能しません:

wmic nicconfig where MACAddress!='' get Description, MACAddress, IPAddress, IPSubnet, DefaultIPGateway, DNSServerSearchOrder, DHCPEnabled /format:htable >> "%~dp0Config %computername%.html"

私の悪い英語でごめんなさい=)

3
rafaelfndev

WMICはSQLダイアレクトを使用します。空の文字列(長さ0の文字列)はNULL(値なし)と同じではありません。

wmic nicconfig where "MACAddress is not null" get ...
4
dbenham