A instrução IF no arquivo em lote não está funcionando corretamente

A instrução IF no arquivo em lote não está funcionando corretamente
@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

Quando executo o arquivo em lote acima, sempre obtenho resultados opostos aos esperados.

Portanto, se o diretório existir, aparecerá "Diretório criado!", e se não existir, aparecerá "Diretório existe!"

É basicamente o contrário - Por que isso acontece?

Responder1

O arquivo em lote parece bom para mim e funciona aqui (desde que você tenha direitos de criação de diretório emArquivos de Programasé claro, então você pode querer executá-lo a partir de um prompt de comando elevado (admin).

Uma dica é modificar ligeiramente o teste de existência de diretório. Em vez de:

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

você deveria usar:

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

Observe a barra invertida final. Isso garante que, se houver um arquivo com o mesmo nome, o teste não retornará True.

informação relacionada