Asunto: Saber el sistema operativo en proceso por lotes .bat
Estoy realizando un mini script con un fichero de proceso por lotes, un .bat, en uno de los pasos del fichero de proceso por lotes necesito hacer una cosa si se ejecuta en Windows 9x y otra si se ejecuta en Windows XP.
¿Se puede hacer esto? ¿Se puede hacer un "if" y que además compruebe el sistema operativo en un fichero de proceso por lotes?
Publicado:
Lun Oct 20, 2008 11:05 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Saber el sistema operativo en proceso por lotes .bat
Anuncios
varios escribió:
Estoy realizando un mini script con un fichero de proceso por lotes, un .bat, en uno de los pasos del fichero de proceso por lotes necesito hacer una cosa si se ejecuta en Windows 9x y otra si se ejecuta en Windows XP.
¿Se puede hacer esto? ¿Se puede hacer un "if" y que además compruebe el sistema operativo en un fichero de proceso por lotes?
Sí es posible, existe una variable de entorno llamada: OS, tanto en Windows 9x como en Windows XP, que contiene el nombre del sistema operativo.
Si desde una ventana de shell de comandos (MS-DOS) ejecutamos el comando:
Código:
set os
Para el caso de Windows XP, Windows 2000 Server, Windows Server 2003, Windows Server 2008, nos devolverá:
Windows_NT
Para el caso de Windows 95, Windows 98, Windows ME nos devolverá "" (vacío), pues esta variable no existe en Windows 95, 98.
Para hacer un IF (condicionante) en un fichero de proceso por lotes, utilizaremos la siguiente sintaxis:
if parte1_condicion == parte2_condicion goto nombre_etiqueta
Por ejemplo, utilizando la variable "OS":
Código:
if "%OS%" == "Windows_NT" goto WindowsNT
:Windows9X
ECHO xxx Estás ejecutando Windows 9x xxx
goto salida
:WindowsNT
ECHO xxx Estás ejecutando Windows NT (XP, 2000, 2003) xxx
net start mysql
goto salida
:salida
echo xxx Fin del proceso por lotes xxx
pause
Con la primera línea, en
if "%OS%" == "Windows_NT" goto WindowsNT
* Si el valor de la variable OS es "Windows_NT", el flujo del programa saltará a la etiqueta "WindowsNT" y ejecutará lo que haya por debajo.
* Si el valor de la variable OS es distinto de "Windows_NT" se ejecutará lo que haya por debajo del IF.
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A