Para la parte 1, findstr
es la respuesta. Usted sólo puede usar la característica de expresiones regulares junto con errorlevel
:
> set xxokay=ABC
> set xxbad=AB1C
> echo %xxokay%|findstr /r "^[A-Z]*$" >nul:
> echo %errorlevel%
0
> echo %xxbad%|findstr /r "^[A-Z]*$" >nul:
> echo %errorlevel%
1
Es importante en este caso que hacer no tienen un espacio entre la echo %xxokay%
y el caracter |
, ya que dará lugar a un espacio que se emite que no es uno de tus personajes aceptables.
Para la parte 2, findstr
es también la respuesta (/i
es ignorar caso que puede ser lo que quiera - dejar fuera si el caso debe coincidir):
> set xxruby=somewhere;c:\ruby;somewhere_else
> set xxnoruby=somewhere;somewhere_else
> echo %xxruby%|findstr /i ruby >nul:
> echo %errorlevel%
0
> echo %xxnoruby%|findstr /i ruby >nul:
> echo %errorlevel%
1
A continuación, puede utilizar:
if %errorlevel%==1 goto :label
para cambiar el comportamiento de su secuencia de comandos en ambos casos.
Por ejemplo, el segmento de código para la comprobación de rubí podría ser algo como:
:ruby_check
echo %yourvar%|findstr /i ruby >nul:
if %errorlevel%==1 goto :ruby_check_not_found
:ruby_check_found
:: ruby was found
goto :ruby_check_end
:ruby_check_not_found:
:: ruby was NOT found
:ruby_check_end