Batch: Valores nulos

Iniciado por VivaElPirateo, 10 Junio 2012, 03:46 AM

0 Miembros y 1 Visitante están viendo este tema.

VivaElPirateo

Buenas, comunidad:

En mi script, estoy intentando que no pasen valores nulos, pero no logro llegar a ellos.
Les muestro mi 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!!!!!!

overxfl0w13

No puedes poner un condicional, y si la variable password es igual a "" (texto vacio) lanzarle un mensaje de error? :)
[/url]

0xDani

if not defined %password% goto menu. Creo que es asi.

Saludos ;D
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

BatchianoISpyxolo

Cita de: daniyo en 10 Junio 2012, 12:10 PM
if not defined %password% goto menu. Creo que es asi.

Saludos ;D

Verificamos si una variable no ha sido definida previamente.
Código (dos) [Seleccionar]
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 (dos) [Seleccionar]
if "%variable%" EQU "" () else ()

Saludos.
Puede que desees aprender a programar desde 0: www.espascal.es

VivaElPirateo

Millón de gracias mis socitos!!!!

Me ha resultado de maravillas.

Hasta siempre!!!

Nos vemos!!!

Eleкtro

Solo una pequeña anotación, Sobre esto que explicó Batchiano:

CitarVerificamos si una variable no ha sido definida previamente
Código (dos) [Seleccionar]
if not defined variable () else ()

Verificamos si la variable es una cadena vacía.
Código (dos) [Seleccionar]
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 (dos) [Seleccionar]
@Echo OFF
Set "var=asfasf"
Set "var="
if not defined VAR (Pause)


Saludos!.








BatchianoISpyxolo

Cita de: EleKtro H@cker en 11 Junio 2012, 01:18 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 (dos) [Seleccionar]
@Echo OFF
Set "var=asfasf"
Set "var="
if not defined VAR (Pause)


Saludos!.

Ups, me colé! xD Creí que tenía un valor basura.
Puede que desees aprender a programar desde 0: www.espascal.es

VivaElPirateo

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???

Eleкtro

#8
Cita de: VivaElPirateo en 13 Junio 2012, 07:12 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:
Echo ^&

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

%%
^^

Ejemplo:
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








VivaElPirateo

Muy agradecido con tu respuesta, mi buen masta!!!