web-dev-qa-db-fra.com

Fichier de commandes: Vérifiez si le système d'exploitation est Windows 10

Je veux créer un fichier de commandes qui effectuera l'opération suivante: vérifie si le système d'exploitation en cours d'exécution est Windows. Si c’est le cas, Hello. Im win 10 devrait imprimer un autre message. Comment puis-je faire cela si condition?

Pseudocode:

if OS == Win10 then
   echo Hello im win 10
else
   echo I am another os
7
Martin Rezyne
setlocal
for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j
if "%version%" == "6.3" echo Windows 8.1
if "%version%" == "6.2" echo Windows 8.
if "%version%" == "6.1" echo Windows 7.
if "%version%" == "6.0" echo Windows Vista.
if "%version%" == "10.0" echo Windows 10.
echo %version%
rem etc etc
endlocal
16
Vertexwahn

si vous le souhaitez un peu plus détaillé:

for /f "tokens=2 delims=," %%i in ('wmic os get caption^,version /format:csv') do set os=%%i
echo Hello, I am %os%

ou simplement répondre à vos exigences:

for /f "tokens=2 delims=," %%i in ('wmic os get caption^,version /format:csv') do set os=%%i
echo %os%|find " 10 ">nul &&echo Hello I'm Windows 10||echo I am another os

(Le ,version garantit que votre chaîne souhaitée n'est pas le dernier jeton, qui contient cette fin de ligne wmic laide)

4
Stephan

J'ai amélioré le script de Vertexwahn pour prendre en charge plusieurs versions de Windows:

setlocal
for /f "tokens=2 delims=[]" %%i in ('ver') do set VERSION=%%i
for /f "tokens=2-3 delims=. " %%i in ("%VERSION%") do set VERSION=%%i.%%j
if "%VERSION%" == "5.00" echo Windows 2000
if "%VERSION%" == "5.0" echo Windows 2000
if "%VERSION%" == "5.1" echo Windows XP
if "%VERSION%" == "5.2" echo Windows Server 2003
if "%VERSION%" == "6.0" echo Windows Vista
if "%VERSION%" == "6.1" echo Windows 7
if "%VERSION%" == "6.2" echo Windows 8
if "%VERSION%" == "6.3" echo Windows 8.1
if "%VERSION%" == "6.4" echo Windows 10
if "%VERSION%" == "10.0" echo Windows 10
echo %VERSION%
endlocal
1
MarekJ47