16

「 sysinfo」コマンドの「 system model」属性で文字列「 virtual」を検索したい。「system model: -------------------------」、つまり systeminfo の出力に「virtual」が見つかった場合、コマンドは成功するはずです。systeminfo コマンドの出力全体で「virtual」を検索するのではなく、システム モデル属性でのみ検索する必要があります。たとえば、コマンド

systeminfo | findstr /i "system model" 

私は次のようなものを取得します

System Model:              HP Compaq dc7800p Small Form Factor

上記の出力行で、文字列 virtual を検索し、errorlevel を使用して操作したいと考えています。だから私がこれを行うのを手伝ってください。

以下は、私が試したもので、正しくありませんでした。または、正規表現を使用できる場合は助けてください

systeminfo | findstr /i /R  "system model: virtual machine" > nul
if %errorlevel% == 0 (
   echo virtual machine
) ELSE (
   echo physical machine
)

前もって感謝します

4

1 に答える 1

14

これを試して:

systeminfo | findstr /I /B /C:"system model" | findstr /I "virtual"
if %errorlevel% == 0 (
    echo virtual machine
) else (
    echo real machine
)

実際のシステムと仮想システムでテストしましたが、WinXp と Win7 で正常に動作します。system model文字列は、英語の Windows バージョンでのみ使用されることに注意してください。他の言語の Windows バージョンでは、別の名前が使用されます。

于 2012-09-17T08:39:27.883 に答える