'sysinfo'コマンドの "system model"属性で文字列 "virtual"を検索したい。 'システムモデル:-------------------------'に 'virtual'が見つかった場合、コマンドは成功するはずです。つまり、systeminfoの出力。 systeminfoコマンドの出力全体で「仮想」を検索するのではなく、システムモデル属性のみで検索する必要があります。たとえば、コマンド
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
)
前もって感謝します
これを試して:
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バージョンでは別の名前が使用されます。