Получить версию для Windows в Cygwin - PullRequest
6 голосов
/ 30 мая 2011

Как я могу получить версию Windows, которую я сейчас использую под Cygwin?

Я поддерживаю скрипт автоматической сборки, работающий в дистрибутивах Mac, Windows и Linux, и мне нужно иметь возможность определить, под какой версией Windows он в данный момент работает.

Желательно, чтобы он возвращал стандартное имя выпуска Windows, но какой-то код, который я мог бы отделить от других, также был бы полезен.

Что я хочу знать, так это то, что я использую 7, XP, Server 2008 и т. Д.

Помогите, Идеи?

Ответы [ 3 ]

9 голосов
/ 30 мая 2011

Вы можете извлечь его из утилиты Windows systeminfo.

systeminfo | grep '^OS'

Только имя ОС:

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

Пример:

$ 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
8 голосов
/ 30 мая 2011

Вы можете использовать uname -s и сравнить вывод с этим:

NT-5.0 = W2000

NT-5.1 = XP

NT-6.0 = Vista

NT-6.1 = W7

Я использую 64-разрядную версию Windows 7, поэтому мой вывод: CYGWIN_NT-6.1-WOW64. Вы можете увидеть больше информации здесь .

5 голосов
/ 30 мая 2011

Как это:

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

eh@winxpsp3 ~
$
...