Obtenir la version Windows dans Cygwin

Comment puis-je obtenir la version de Windows en cours d’exécution sous Cygwin?

Je maintiens un script de compilation automatique qui fonctionne sur les dissortingbutions Mac, Windows et Linux et je dois être capable de détecter la version de Windows sous laquelle il est actuellement exécuté.

De préférence, je pourrais le faire renvoyer le nom de la version standard de Windows, mais une sorte de code que je pourrais séparer des autres serait également génial.

Ce que je veux savoir, c’est si j’utilise 7, XP, Server 2008, etc.

Aide, des idées?

Comme ça:

eh@winxpsp3 ~ $ echo `cmd /c ver` Microsoft Windows XP [Version 5.1.2600] eh@winxpsp3 ~ $ 

Vous pouvez utiliser uname -s et comparer le résultat à ceci:

NT-5.0 = W2000

NT-5.1 = XP

NT-6.0 = Vista

NT-6.1 = W7

CYGWIN_NT-6.1-WOW64 Windows 7 64 bits, ma sortie est donc: CYGWIN_NT-6.1-WOW64 . Vous pouvez voir plus d’informations ici .

Vous pouvez le extraire de l’utilitaire Windows systeminfo .

 systeminfo | grep '^OS' 

Nom du SE uniquement:

 systeminfo | sed -n 's/^OS Name:[[:blank:]]*//p' 

Exemple:

 $ systeminfo.exe | grep '^OS' OS Name: Microsoft Windows 7 Home Premium OS Version: 6.1.7601 Service Pack 1 Build 7601 OS Manufacturer: Microsoft Corporation OS Configuration: Standalone Workstation OS Build Type: Multiprocessor Free $ systeminfo | sed -n 's/^OS Name:[[:blank:]]*//p' Microsoft Windows 7 Home Premium