Ms-Dos - Batch con IF NOT EXIST

   
Vista:

Batch con IF NOT EXIST

Publicado por Nando (1 intervención) el 02/10/2013 12:19:47
Buenos días, quiero hacer un batch que compruebe si existe una ruta, si existe ejecuta el código y sino, mapea la unidad.

Estoy probando con un simple If, pero no me funciona bien:

1
2
3
4
5
6
7
8
9
10
11
echo off
cls
echo esto es una prueba
pause >nul
If not exist "y:\\Servidor\Datos" (
	                                   echo Si existe
		             pause
	                               ) ELSE (
		            echo No existe
		            pause
		         )

La ruta está en un servidor.

Cuando ejecuto el batch y la unidad está mapeada, muestra el mensaje "Si existe"
Desconecto la unidad Y: y ejecuto el batch, muestra el mensaje "Si existe", cuando entiendo que debería mostrar el mensaje "No existe".

He probado de todo, a poner la ruta sin comillas, con la \\ , etc...

Espero que me podáis ayudar, gracias de antemano.
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

Batch con IF NOT EXIST

Publicado por Antoni Masana (339 intervenciones) el 03/10/2013 06:29:22
El comando IF {NOT} EXIST verifica si existen solo ficheros, no sirve para directorios, ni rutas ni discos y otras cosas.

Una opción es decirle cualquier fichero *.* pero esto tampoco es una garantia porque si la ruta no tiene ficheros seguiremos sin saber que existe.

Otra opción y es la que utilizo siempre es preguntar por el fichero que siempre existe

1
2
3
4
5
6
7
8
9
10
11
12
echo off
cls
echo esto es una prueba
pause >nul
 
If not exist "y:\\Servidor\Datos\NUL" (
   echo Si existe
   pause
) ELSE (
   echo No existe
   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

Batch con IF NOT EXIST

Publicado por amparitohijo (3 intervenciones) el 20/12/2013 13:30:07
Buenas,

Otro archivo que siempre existe dentro de la ruta, es el punto "." al final de la barra "\"

1
2
3
4
5
6
7
IF NOT EXIST "y:\\Servidor\Datos\." (
   ECHO No existe
   PAUSE
) ELSE (
   ECHO Si existe
   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

Batch con IF NOT EXIST

Publicado por daniel drr0872@gmail.com (3 intervenciones) el 05/06/2017 14:42:08
Saludos Antoni y colegas,

Necesito ayuda urgente respecto al tema, tengo un bat que se ejecuta por una GPO en el LOGON y chequea si existe un fichero en el StartUp de equipos con Windows XP en español, XP en inglés y Win 7, pero no se como hacerlo ya que si uso IF not exist (paht de XP en sp) goto NOEXIST y en otra línea lo mismo para XP en IN y otra línea para el path de Win 7 entonces no funciona porque si el equipo tiene Windows 7 por ejemplo entonces se cumple la primera condición de XP y salta al goto.

Lo ideal sería utilizar algo parecido al OR o sea si No exist uno o NO existe otro o NO existe el otro entonces goto

Qué sugerencias me pueden dar...
Saludos.
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