Sobre archivos .Bat

Iniciado por tomasscfgcu, 14 Octubre 2013, 15:09 PM

0 Miembros y 2 Visitantes están viendo este tema.

tomasscfgcu

Buenos dias necesito ayuda con el siguiente codigo, me encuentro realizando un codigo que me permita obtener el sistema operativo de una PC y luego poder tener diferentes opciones como un menu, de la forma que lo estoy haciendo es enviarlo hacia un archivo .txt luego quisiera almacenarlo en una variable para luego poder jugar con ese valor pero entonces no se como cargar el resultado.

Este es el codigo que me lo envia para un .txt la version del S.O. que utiliza la PC.
@echo off
ver >ayuda.txt
pause

Luego quisiera guardarlo en una variable para trabajar con ese valor.

Eleкtro









tomasscfgcu

Pero este codigo es el que me permite guardar en una variable el valor de la version del sistema que estaba almacenado en el txt.

ese codigo lo pongo en el mismo archivo .bat que fue el que utilice para optener el valor de la variable Ver y que envie al txt.

daryo

Cita de: tomasscfgcu en 14 Octubre 2013, 15:46 PM
Pero este codigo es el que me permite guardar en una variable el valor de la version del sistema que estaba almacenado en el txt.

ese codigo lo pongo en el mismo archivo .bat que fue el que utilice para optener el valor de la variable Ver y que envie al txt.
con for puedes coger la salida de un comando y partirla en pedazos , una ves partida puedes guardar en una variable lo que necesites
buenas

Eleкtro

Añado: Almacenar información en archivos de texto para luego leer esa información no es necesario, es realizar pasos innecesarios, ya que puedes leer/almacenar la información de salida del comando diréctamente usando For.

Saludos








tomasscfgcu

#5
Estas son las dos formas que e estado probando pero no logro el resultado esperado.
en la primera prueba no logro capturar el resultado de la variable VER para luego comparar y en la segunda prueba solo me daja comparar poniendole una coma en los espasios del resultado real de la variable. Microsoft Windows XP [Versión 5.1.2600]
Prueba 1
ver> versión.txt
FOR /F "tokens=3 delims=" %%G IN (versión.txt) DO @echo %%G

Prueba 2
FOR /F "tokens=* delims=," %%G IN (%ver%) DO @echo Versión %%G
Pause

Eleкtro

#6
Hola,
Debes usar las etiquetas para insertar código, es una norma del foro, puedes ver las instrucciones en mi firma.

Solución:

· VER
Código (dos) [Seleccionar]
For /F "Tokens=4 Delims=] " %%A in ('ver') Do (Echo %%A)

Output:
5.1.2600

· WMIC
Código (dos) [Seleccionar]
For /F %%# in (
   'wmic os get version ^| FINDSTR "[0-9]"'
) do (
   Echo %%#
)


Output:
5.1.2600

Saludos








tomasscfgcu

#7
 Perfecto el · WMIC que fue la segunda opcion que me diste, es cierto que fuciona y da el resultado esperadopero para lo que necesito que es comparar con ese valor, no se como pueda hacerlo ya que el no lo puedo almacenar en una variable par luego poder dercir si es igual o no.

Me muestra este valor se es XP: 5.1.2600 pero si ahora yo quiero compara ese valor con 500 por ejemplo y decir si es igual realiza la primera opcion y sino realiza la segunda.

Gracias de antemano, por la ayuda prestada.

Eleкtro

La pregunta es muy básica, podrías resolverla sin ayuda leyendo algún manual básico de Batch.

Código (dos) [Seleccionar]
@Echo OFF & Setlocal EnableDelayedExpansion

For /F %%# in (
    'wmic os get version ^| FINDSTR "[0-9]"'
) do (
    Set "Build=%%#" & REM Output: 6.2.9200
    Set /A "Build=!Build:.=!" & REM Output: 629200
    if !Build! GTR 500 (
    Echo Yes
    ) Else (
    Echo No
    ) & REM Output: Yes
)

Pause&Exit


Un saludo!