La declaración IF en el archivo por lotes no funciona correctamente

La declaración IF en el archivo por lotes no funciona correctamente
@ECHO OFF
PAUSE 
IF EXIST "C:\Program Files\NexphaseV6\ECF" (
    ECHO Directory exists! 
    PAUSE
) ELSE (
    MKDIR "C:\Program Files\NexphaseV6\ECF" 
    ECHO Directory made!
)
PAUSE

Cuando ejecuto el archivo por lotes anterior siempre obtengo resultados opuestos a los que espero.

Entonces, si el directorio existe, dice "¡Directorio creado!", y si no existe, dice "¡El directorio existe!".

Básicamente es al revés. ¿Por qué es esto?

Respuesta1

El archivo por lotes me parece bien y funciona aquí (siempre que tenga derechos de creación de directorio enArchivos de programapor supuesto, es posible que desees ejecutarlo desde un símbolo del sistema elevado (administrador).

Un consejo es modificar ligeramente la prueba de existencia del directorio. En lugar de:

IF EXIST "C:\Program Files\NexphaseV6\ECF"

Deberías usar:

IF EXIST "C:\Program Files\NexphaseV6\ECF\"

Tenga en cuenta la barra invertida al final. Esto garantiza que si hay un archivo con el mismo nombre, la prueba no devolverá Verdadero.

información relacionada