Ms-Dos - No me anda un IF

 
Vista:

No me anda un IF

Publicado por Pedro (4 intervenciones) el 23/03/2014 13:48:00
Hola gente

Tengo un bat que necesito colocarle un if, he visto los tutoriales, pero no me funciona

Cuando lo ejecuto, no me muestra nada y me cierra la ventana de DOS. estoy trabajando en W7 y se va a ejecutar en W8

Les copio el bat a ver si alguien me puede ayudar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
REM A ver que hacemos
 
:PreguntaInicial
SET/p Inicial = Inicial del Nombre
 
if %Inicial%==C (goto Claudio) else (goto Mal)
 
:Mal
Echo Inicial NO Valida
pause
goto PreguntaInicial
 
:Claudio
pause
ECHO estoy dentro de Claudio -- %Inicial%
pause

Muchas Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

No me anda un IF

Publicado por Antoni Masana (811 intervenciones) el 24/03/2014 07:07:45
Hay varios Dos correciones que hacer

1º El nombre de la variable del set no debe tener espacios entre la variable y el igual porque no funciona bien y da muchísimos problemas

2º Pon los variables en el IF entre comillas, paréntesis, guiones, corchetes o cualquier carácter antes y/o después, de lo contrario si la variable esta vacía el IF da error. Evita el carácter % porque tendras mas problemas de los que arreglas.

Yo suelo utilizar las comillas dobles o los paréntesis queda como mas claro.

Algunos ejemplos

1
2
3
4
5
6
7
8
9
IF "%Inicial%" == "C" (goto Claudio) else (goto Mal)
IF (%Inicial%) == (C) (goto Claudio) else (goto Mal)
IF -%Inicial%- == -C- (goto Claudio) else (goto Mal)
IF #%Inicial%# == #C# (goto Claudio) else (goto Mal)
 
IF "%Inicial%  == "C  (goto Claudio) else (goto Mal)
IF (%Inicial%  == (C  (goto Claudio) else (goto Mal)
IF -%Inicial%  == -C  (goto Claudio) else (goto Mal)
IF #%Inicial%  == #C  (goto Claudio) else (goto Mal)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@ECHO OFF
 
:PreguntaInicial
   SET /P Inicial=Inicial del Nombre:
 
   IF "%Inicial%" == "C" (goto Claudio) ELSE (goto Mal)
 
:Mal
   Echo Inicial NO Valida
   pause
   goto PreguntaInicial
 
:Claudio
   ECHO estoy dentro de Claudio -- %Inicial%
   pause
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No me anda un IF

Publicado por Pedro (4 intervenciones) el 24/03/2014 22:11:20
Muchas gracias Antoni,

Voy a seguir y cualquier otra cosa molesto de vuelta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar