Многие команды DOS в разных версиях Windows похожи, но могут поддерживать разные параметры. Кроме того, новые версии Windows могут поддерживать новые команды или удалять старые версии. Таким образом, если вы хотите написать командный файл, который может работать на разных типах машин, может оказаться полезным определить версию Windows, на которой запущен командный файл. Таким образом, командный файл может выполнять команды, соответствующие операционной системе.
Следующий командный файл определяет, работает ли на компьютере Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP , Windows 2000 или Windows NT. Его можно легко модифицировать для поддержки других версий Windows по мере необходимости или для установки переменной среды на основе обнаруженной версии Windows. Обратите внимание, что для того, чтобы этот командный файл правильно различался между более новыми версиями Windows Server и потребительскими версиями Windows, он более запутан, чем пакетные файлы, которые вы можете увидеть в другом месте. Я объяснил приведенные ниже рассуждения.
1) Откройте окно «Блокнот».
2) Скопируйте следующий текст в Блокнот (вы можете получить доступ к печатной версии этого наконечника, поскольку некоторые строки завертываются ):
@echo off
ver | find "2003" > nul
if %ERRORLEVEL% == 0 goto ver_2003
ver | find "XP" > nul
if %ERRORLEVEL% == 0 goto ver_xp
ver | find "2000" > nul
if %ERRORLEVEL% == 0 goto ver_2000
ver | find "NT" > nul
if %ERRORLEVEL% == 0 goto ver_nt
if not exist %SystemRoot%\system32\systeminfo.exe goto warnthenexit
systeminfo | find "OS Name" > %TEMP%\osname.txt
FOR /F "usebackq delims=: tokens=2" %%i IN (%TEMP%\osname.txt) DO set vers=%%i
echo %vers% | find "Windows 7" > nul
if %ERRORLEVEL% == 0 goto ver_7
echo %vers% | find "Windows Server 2008" > nul
if %ERRORLEVEL% == 0 goto ver_2008
echo %vers% | find "Windows Vista" > nul
if %ERRORLEVEL% == 0 goto ver_vista
goto warnthenexit
:ver_7
:Run Windows 7 specific commands here.
echo Windows 7
goto exit
:ver_2008
:Run Windows Server 2008 specific commands here.
echo Windows Server 2008
goto exit
:ver_vista
:Run Windows Vista specific commands here.
echo Windows Vista
goto exit
:ver_2003
:Run Windows Server 2003 specific commands here.
echo Windows Server 2003
goto exit
:ver_xp
:Run Windows XP specific commands here.
echo Windows XP
goto exit
:ver_2000
:Run Windows 2000 specific commands here.
echo Windows 2000
goto exit
:ver_nt
:Run Windows NT specific commands here.
echo Windows NT
goto exit
:warnthenexit
echo Machine undetermined.
:exit
3) Сохраните файл как% WINDIR% \ whichvers.bat
4) Теперь из командной строки введите:
whichvers
Это покажет, какую версию Windows вы используете.
ПРИМЕЧАНИЯ:
Вернитесь на страницу Windows XP и DOS.