Hola a todos.
Estoy haciendo un script el cual al ejecutarlo el usuario mete un valor es decir.
script.bat valor
entonces dicho valor %1 le voy usando a lo largo del script...
EL problema es que no veo la forma de que si el usuario ejecute el script sin el valor le diga por pantalla que meta el valor...
he probado if %1 ==nul , if %1=="" pero nada... se que no es complicado pero no veo la forma de que si no metes el valor no se ejecute...
se puede hacer de dos formas
1º)script.bat VALOR (si no metes valor te salta un mensaje que dice que no lo has metido y no se ejecuta el script).
2º)script.bat y que me pida por pantalla que meta un valor
a ver si me echais una mano que se que no es dificil pero no se como hacerlo.
Muchas gracias.
Prueba asi :
@ECHO OFF
IF ["%1"]==[""] (
ECHO FALTA VALOR!
)
ECHO:HAS INTRODUCIDO %1
GOTO:EOF
ó así :
@ECHO OFF
SET ME=%1
IF NOT DEFINED ME (
ECHO FALTA VALOR!
)
IF DEFINED ME (
ECHO INTRODUCISTE %1
)
GOTO:EOF
Y si quieres que %1 tenga cierto valor y el batch ejecute alguna función :
@echo off
:: Binary.bat, convierte un texto a codigo binario.
if ["%1"]==[""] (goto:Syntax)
if /i ["%1"]==["-h"] (goto:Syntax)
if /i ["%1"]==["--help"] (goto:Syntax)
if ["%1"]==["/?"] (goto:Syntax)
:Code
set texto=%*
set texto=%texto:a=01000001%
set texto=%texto:b=01000010%
set texto=%texto:c=01000011%
set texto=%texto:d=01000100%
set texto=%texto:e=01000101%
set texto=%texto:f=01000110%
set texto=%texto:g=01000111%
set texto=%texto:h=01001000%
set texto=%texto:i=01001001%
set texto=%texto:j=01001010%
set texto=%texto:k=01001011%
set texto=%texto:l=01001100%
set texto=%texto:m=01001101%
set texto=%texto:n=01001110%
set texto=%texto:o=01001111%
set texto=%texto:p=01010000%
set texto=%texto:q=01010001%
set texto=%texto:r=01010010%
set texto=%texto:s=01010011%
set texto=%texto:t=01010100%
set texto=%texto:u=01010101%
set texto=%texto:v=01010110%
set texto=%texto:w=01010111%
set texto=%texto:x=01011000%
set texto=%texto:y=01011001%
set texto=%texto:z=01011010%
echo %texto%
goto:eof
:Syntax
echo %~nx0
echo.
echo Modo de uso :
echo %~nx0 Caracter
echo Caracter : Debe ser una letra del abecedario.
goto:eof
Saludos.
perfecto, con los corchetes va de lujo.... cago en la lexe...
al final lo he hecho asi
IF ["%1"]==[""] GOTO:EOF
asi si no se mete el valor el script se acaba, la pregunta es...
como puedo hacer que además de que se acabe diga No ha introducido el valor...
es decir que en vez de hacer una cosa con el if, haga dos...
muchas gracias
@ECHO OFF
IF ["%1"]==[""] (
ECHO FALTA VALOR!
ECHO MODO DE USO :
ECHO %~NX0 VALOR
REM AQUI TODO EL DEMAS CODIGO.
)
ECHO %1
GOTO:EOF
Un posible problema es que si el usuario intrudoce ", saldrá error en el Batch.
Lo he hecho más sencillo tomando tu idea..
simplemente he hecho.
IF ["%1"]==[""] (
cls & echo No has introducido el valor
GOTO:EOF)
aqui sigue el programa...