Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: VivaElPirateo en 10 Junio 2012, 03:46 am



Título: Batch: Valores nulos
Publicado por: VivaElPirateo en 10 Junio 2012, 03:46 am
Buenas, comunidad:

En mi script, estoy intentando que no pasen valores nulos, pero no logro llegar a ellos.
Les muestro mi código:

Código:
set /p nus=               Ingrese el nombre del Usuario a cambiarle el password :
echo.
echo.

Set "nus=%nus:^"=%" & REM "

Net user "%NUS%" >nul 2>&1 || (Echo.   El nombre de usuario ingresado no existe!!! | MORE & Set "Nus=" & Goto :cambiarpassword)


set /p pss=               Ingrese Nueva Contrase¤a:
echo.
echo.

Set "pss=%pss:^"=%" & REM "


echo.
net user %nus% %pss%
echo.
pause
goto usuarios


Lo que no me resulta, es lo del "INGRESE NUEVA CONTRASEÑA: necesito frenar al usuario para que no ponga valores nulos (que me ataje al apretar ENTER en el batch)

Lo del ingrese el nombre de usuario me funciona sin problemas, pero no sé como darle atajo a los passwords en nulo.

Alguna ayudita, porfa!!!!!!


Título: Re: Batch: Valores nulos
Publicado por: overxfl0w13 en 10 Junio 2012, 11:24 am
No puedes poner un condicional, y si la variable password es igual a "" (texto vacio) lanzarle un mensaje de error? :)


Título: Re: Batch: Valores nulos
Publicado por: 0xDani en 10 Junio 2012, 12:10 pm
if not defined %password% goto menu. Creo que es asi.

Saludos ;D


Título: Re: Batch: Valores nulos
Publicado por: BatchianoISpyxolo en 10 Junio 2012, 12:30 pm
if not defined %password% goto menu. Creo que es asi.

Saludos ;D

Verificamos si una variable no ha sido definida previamente.
Código
  1. if not defined variable () else ()

Solo hay que colocar el identificador de la variable, no acceder a su contenido.

Verificamos si la variable es una cadena vacía.
Código
  1. if "%variable%" EQU "" () else ()

Saludos.


Título: Re: Batch: Valores nulos
Publicado por: VivaElPirateo en 10 Junio 2012, 17:47 pm
Millón de gracias mis socitos!!!!

Me ha resultado de maravillas.

Hasta siempre!!!

Nos vemos!!!


Título: Re: Batch: Valores nulos
Publicado por: Eleкtro en 11 Junio 2012, 01:18 am
Solo una pequeña anotación, Sobre esto que explicó Batchiano:

Citar
Verificamos si una variable no ha sido definida previamente
Código
  1. if not defined variable () else ()

Verificamos si la variable es una cadena vacía.
Código
  1. if "%variable%" EQU "" () else ()

Si la variable es una cadena vacía, No es una variable definida, Por lo tanto solo es necesario verificar si se ha definido (if not defined...)

Ejemplo:

Código
  1. @Echo OFF
  2. Set "var=asfasf"
  3. Set "var="

Saludos!.


Título: Re: Batch: Valores nulos
Publicado por: BatchianoISpyxolo en 11 Junio 2012, 08:14 am
Solo una pequeña anotación, Sobre esto que explicó Batchiano:

Si la variable es una cadena vacía, No es una variable definida, Por lo tanto solo es necesario verificar si se ha definido (if not defined...)

Ejemplo:

Código
  1. @Echo OFF
  2. Set "var=asfasf"
  3. Set "var="

Saludos!.

Ups, me colé! xD Creí que tenía un valor basura.


Título: Re: Batch: Valores nulos
Publicado por: VivaElPirateo en 13 Junio 2012, 07:12 am
Mil gracias por todas las ayudas, pero...

Estaba pensando dejar eso del password sin condicionales, ya que, así el usuario puede setear un password vacío (apretar solamente enter) si es que se ha olvidado de su password antiguo y así dejarlo sin password.

Qué me dicen al respecto???


Título: Re: Batch: Valores nulos
Publicado por: Eleкtro en 13 Junio 2012, 09:20 am
el usuario puede setear un password vacío (apretar solamente enter) si es que se ha olvidado de su password antiguo

Qué me dicen al respecto???

Está muy bien que pienses en todas las posibilidades y/o errores al hacer tu script...

Veo que tienes muchas dudas/problemas con los caracteres ilegales así que te voy a hacer una pequeña guía...


Si cualquiera de los siguientes caracteres NO están entre comillas en tus variables ( "caracter" ) darán problemas:

 &
 <
 >
 %
 |
 )
 ^



Para que no den problemas, Hay que escaparlos:

 ^

Ejemplo:
Código:
Echo ^&

Y en estos dos casos, Hay que repetir el caracter para mostrarlo:

 %%
 ^^

Ejemplo:
Código:
Echo %%hola%%
Echo ^^hola^^

Estos caracteres son (No del todo) irreconocibles si habilitas la expansion y trabajas dentro de un FOR:

 ;
 =
 !



Creo que me he dejado alguno... xD Bienvenido a Batch.

saludos


Título: Re: Batch: Valores nulos
Publicado por: VivaElPirateo en 15 Junio 2012, 15:21 pm
Muy agradecido con tu respuesta, mi buen masta!!!