На этот вопрос уже есть ответ здесь:
Я работаю с InstallAnywhere, старой программой для создания установщиков. Я хотел бы установить конкретный файл, только в случае Windows XP и Windows Vista.
Из-за ограничений InstallAnywhere это невозможно. Я могу решить удалить файл только после того, как он уже установлен, на основе правила.
В рамках этого правила я могу проверять платформу, на которой я работаю, что дает мне возможность проверять Windows XP, Windows Vista, Windows 7 и т. Д., Но не Windows 10. Я не могу сказать «Выполнить это действие, когда система не XP или Vista ", поэтому мне нужно сказать" Выполните это действие на всех тех платформах, которые не XP или Vista ".
Тем не менее, я могу запустить команды командной строки и поймать результат, поэтому вот мой вопрос: есть ли команда, которую я могу использовать для определения, работаю ли я в системе Windows 10?
источник
winver
появится диалоговое окно «О Windows», если набрано cmd или Start. Будет ли это работать? В качестве альтернативы - stackoverflow.com/questions/1792740/…ver
. Например, в моей системе Windows 7 я получаю «Microsoft Windows [Версия 6.1.7601]», которая говорит мне, что я работаю под управлением Windows 7 (с версией 6.1 ).Ответы:
Есть ли команда, чтобы определить, работаю ли я в системе Windows 10?
Вы можете использовать
wmic
.Следующая команда вернет версию Windows.
Пример вывода:
Если вам нужна дополнительная информация, вы можете использовать следующий пакетный файл (GetOS.cmd), который будет извлекать и отображать:
Версия ОС хранится в
%_os
, основная версия пакета обновления хранится в%_sp%
, а архитектура хранится в%_bits%
.Заметки:
Не полностью протестирован, так как у меня нет всех комбинаций ОС и Service Pack для тестирования.
Команда
for
извлекает только 3-ю часть (токен) ОС. Это будет работать для настольных версий (если вы хотите отличить Server 2008 от других версий, вам нужно будет найти другое решение).%_os
будет установлен в одно из следующих значений:Server
,Vista
,7
,8
,8.1
или10
.Пример вывода:
Дальнейшее чтение
источник
wmic os get Caption | findstr /V Caption
pause
перед тем,endlocal
чтобы дать пользователю возможность прочитать вывод до закрытия окна. Это тоже для вас?Я не могу поверить в это долго и без веры команду
Он работает в перенаправлениях, так что вы можете сделать
Но обычно вы должны писать «для этой и всех будущих версий», чтобы лучше перечислять предыдущие.
источник
ver
, в PowerShell не работает. ЭтоCMD
специфично.iex "ver"
делает!ver
может быть немного обманчивым. На машине я сижу, сейчас она возвращаетсяMicrosoft Windows [Version 6.1.7601]
. Но я совершенно уверен, что он работает под управлением Windows 7, а не Windows 6.получает много полезной информации, такой как операционная система, тип системы (32/64 бит) и так далее:
источник
systeminfo
тоже порекомендовал . Как видно из приведенного выше изображения, на нем будет отображаться ваша операционная система, а также другая информация, которая может вам понадобиться.systeminfo
на самом деле дает информацию, которую я ищу (следовательно, upvote), но это занимает довольно много времени (на моем ПК это занимает более 15 секунд). Поэтому я выбралwmic
решение, найденное в следующем ответе.cmd /c systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
У меня нет опыта работы с InstallAnywhere, но есть два варианта, чтобы увидеть, какая ОС установлена с помощью командной строки.
Использование Cmd
Используя команду
systeminfo.exe
, вы можете увидеть результат под полемOS Name
. Это может дать вам больше информации, чем вам требуется.Дополнительную информацию об этой команде можно найти в Microsoft TechNet .
Powershell
В качестве альтернативы вы можете использовать следующий скрипт Powershell, который будет возвращать точную информацию, которую вы хотите.
источник