Quiero hacer un archivo por lotes que hacer la siguiente operación: comprueba si el sistema operativo OS es windows. Si es que se debe imprimir Hello. Im win 10 persona debe imprimir un mensaje. ¿Cómo puedo hacer esto si la condición?

Pseudocódigo:

if OS == Win10 then
   echo Hello im win 10
else
   echo I am another os

OriginalEl autor Martin Rezyne | 2015-12-16

3 Comentarios

  1. 16
    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
    
    Gracias. Esto es exactamente lo que yo necesitaba
    Este método no funciona para Windows XP, ya que ver salidas Microsoft Windows XP [Version 5.1.2600] y por lo tanto [Version.5 se asigna a la variable VERSION. Sin embargo, funciona sólo para comprobar si el sistema operativo es Windows 10 como se pide por el Martin Rezyne.
    independientemente, el valor de %VERSIÓN% no será 10.0 y por lo que se puede utilizar para comprobar si está o no está ejecutando Windows 10. No te va a ayudar con la obtención de la versión actual, pero eso no es lo que la pregunta está pidiendo.

    OriginalEl autor Vertexwahn

  2. 4

    si quieres un poco más detallada:

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

    o sólo para satisfacer sus requisitos:

    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
    

    (el ,version asegura, su cadena deseada no es el último testigo, que contiene ese feo wmic de final de línea)

    Este método funciona incluso para Windows XP Professional que es ahora no está soportado por Microsoft. Pero es lento en comparación con el uso de la salida de comando ver como wmic necesidades siempre más de 1 segundo para finalizar.

    OriginalEl autor Stephan

  3. 1

    He mejorado Vertexwahn de la secuencia de comandos para apoyar más las versiones 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
    

    OriginalEl autor MarekJ47

Dejar respuesta

Please enter your comment!
Please enter your name here