Se puede interpretar un texto en batch?

Les quería consultar de qué manera puedo interpretar un texto y según eso poder actuar o no. Por ej tengo el siguiente script que comprueba si la licencia de Office esta activada o no.

@echo off
if exist "C:\Program Files (x86)\Microsoft Office\Office16\*.*" set CarpOffice=C:\Program Files (x86)\Microsoft Office\Office16
if exist "C:\Program Files\Microsoft Office\Office16\*.*" set CarpOffice=C:\Program Files\Microsoft Office\Office16
pushd %CarpOffice%
for /f "tokens=3" %%a in ('cscript ospp.vbs /dstatus^|find "STATUS:"') do echo %%a
popd
pause

el resultado si esta activado es ---LICENCED--- y si está sin licencia es ---NOTIFICATIONS---

Mi consulta es ¿de qué manera puedo hacer que el batch identifique el resultado para poder usar algo como esto

IF %MENSAJE% EQU "---LICENCED---" (CALL "D:\Advertencia.bat")

Aunque no sea la sintaxis adecuada, es solo para graficarlo de alguna manera, es por eso que lo dispongo así.

No encuentro la manera de hacer comprobaciones en palabras en lugar de números.

1 respuesta

Respuesta
1

Pues básicamente es como lo planteas. Prueba con esto

@echo off
if exist "C:\Program Files (x86)\Microsoft Office\Office16\*.*" set CarpOffice=C:\Program Files (x86)\Microsoft Office\Office16
if exist "C:\Program Files\Microsoft Office\Office16\*.*" set CarpOffice=C:\Program Files\Microsoft Office\Office16
pushd %CarpOffice%
for /f "tokens=3" %%a in ('cscript ospp.vbs /dstatus^|find "STATUS:"') do (
   if "%%a"=="---LICENSED---" (call "D:\Advertencia1.bat
      ) else if "%%a"=="---NOTIFICATIONS---" call "D:\Advertencia2.bat"
   )
Popd
Pause

He visto que se me pasó cerrar las comillas en el primer IF. Debería ser:

@echo off
if exist "C:\Program Files (x86)\Microsoft Office\Office16\*.*" set CarpOffice=C:\Program Files (x86)\Microsoft Office\Office16
if exist "C:\Program Files\Microsoft Office\Office16\*.*" set CarpOffice=C:\Program Files\Microsoft Office\Office16
pushd %CarpOffice%
for /f "tokens=3" %%a in ('cscript ospp.vbs /dstatus^|find "STATUS:"') do (
   if "%%a"=="---LICENSED---" (call "D:\Advertencia1.bat"
      ) else if "%%a"=="---NOTIFICATIONS---" call "D:\Advertencia2.bat"
   )
Popd
Pause

¡Gracias! Funciona correctamente. La verdad pensé que con palabras no se podía y la verdad lo había planteado casi por completo en la duda.

Eternamente agradecido por tu tiempo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas