Как проверить версию Windows 10 или 11 с помощью пакетного файла?

Как создать пакетный файл для проверки версии Windows

При разработке сценариев и утилит для автоматизации задач в Windows важно уметь определять версию операционной системы. В этой статье мы рассмотрим, как создать простой пакетный файл (checkver.bat), который поможет вам определить, работает ли ваша система на Windows 10 или Windows 11.

Создание пакетного файла

Первым шагом будет создание пакетного файла, который использует команду ver для определения версии Windows. Вот пример базового кода:

@echo off
for /f "tokens=4-5 delims=[.] " %%i in ('ver') do set version=%%i.%%j

if "%version%" == "10.0" (
    echo Detected Windows 10
    REM Place Windows 10-specific commands here
) else if "%version%" == "11.0" (
    echo Detected Windows 11
    REM Place Windows 11-specific commands here
) else (
    echo Operating system not recognized as Windows 10 or 11
    REM Default commands here
)

В этом коде мы используем цикл для извлечения версии операционной системы и определения, является ли она 10-й или 11-й версией.

Почему команда ver может быть недостаточной?

Стоит отметить, что команда ver в Windows 11 возвращает следующее значение:

Microsoft Windows [Version 10.0.22000.2538]

Это может сбивать с толку при оценке, так как вывод по-прежнему указывает на 10.0. Поэтому для точного определения версии лучше использовать сборочный номер (build number).

Альтернативный способ проверки версии

Чтобы избежать путаницы с командой ver, вы можете использовать следующий подход, который проверяет только сборочный номер:

for /f "tokens=3 delims=." %%i in ('ver') do set build=%%i

if %build% lss 22000 (
    echo Detected Windows 10
) else (
    echo Detected Windows 11
)

Этот код напрямую проверяет, меньше ли сборочный номер 22000, что позволяет различать Windows 10 и 11 более надежным способом.

Использование PowerShell для проверки версии

Как альтернатива пакетному файлу, вы также можете использовать PowerShell для проверки версии Windows, что более эффективно и интуитивно. Вот пример команды:

[System.Environment]::OSVersion.Version.Build -lt "22000" ? "Windows 10" : "Windows 11"

Этот однострочный код позволит вам моментально получить информацию о версии операционной системы без сложных манипуляций со строками.

Дополнительные возможности с PowerShell

Также стоит упомянуть команду:

(Get-ComputerInfo).OsBuildNumber

Эта команда собирает информацию о сборочном номере из реестра, предоставляя более детализированные данные о системе, но требует немного больше времени для выполнения.

Заключение

Определение версии Windows – важный компонент разработки скриптов и утилит для администраторов систем. Независимо от того, используете ли вы пакетные файлы или PowerShell, важно выбирать наиболее эффективные и надежные методы для выполнения этой задачи. Надеемся, что представленные здесь примеры помогут вам в вашей работе!

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *