Rechercher une chaîne de caractères en sortie de ligne de commande
Je recherche la chaîne "virtuel" dans "modèle de système de" attribut " sysinfo' de la commande. La commande doit être efficace que si le "virtuel" est trouvé dans la " modèle du système: -------------------------' c'est à dire la sortie de la systeminfo. Il ne faut pas la recherche pour "virtuelle" de sortie de commande systeminfo mais ils doivent le faire dans le système d'attribut de modèle.
Par exemple, la commande
systeminfo | findstr /i "system model"
Je vais obtenir quelque chose comme
System Model: HP Compaq dc7800p Small Form Factor
dans la ligne au-dessus de la sortie je recherche la chaîne virtuelle, et que vous voulez manipuler à l'aide de errorlevel. Merci donc de m'aider à le faire.
Suivant est celui que j'ai essayé qui n'est pas correct.
Ou m'aider si je peux utiliser des expressions régulières
systeminfo | findstr /i /R "system model: virtual machine" > nul
if %errorlevel% == 0 (
echo virtual machine
) ELSE (
echo physical machine
)
Merci d'avance
OriginalL'auteur Ramesh | 2012-09-17
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Je l'ai testé sur un réel et le virtuel du système et il fonctionne très bien sur WinXp et Win7.
Notez que le
system model
chaîne est uniquement en anglais, les versions de Windows. Windows versions dans les autres langues pourront utiliser un des noms différents.findstr /i /b /C:"system model"
(pas de problème dans ce cas spécial, car il n'y a pas de ligne danssysteminfo
qui commence par "Modèle")vous avez raison! Il fonctionne à l'heure actuelle, mais pourrait être un problème dans le futur si Windows modifie les informations générées par systeminfo. Je vais ajouter l' /C: à ma réponse. Merci pour la mention!
OriginalL'auteur THelper