Оператор IF в пакетном файле работает неправильно

Оператор IF в пакетном файле работает неправильно
@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

Когда я запускаю указанный выше пакетный файл, я всегда получаю результаты, противоположные ожидаемым.

Таким образом, если каталог существует, то будет написано «Каталог создан!», а если не существует, то будет написано «Каталог существует!».

По сути, все наоборот. Почему?

решение1

Пакетный файл выглядит нормально и работает здесь (при условии, что у вас есть права на создание каталога вПрограммные файлыконечно, поэтому вам, возможно, захочется запустить его из командной строки с повышенными правами (администратора).

Один совет — немного изменить тест существования каталога. Вместо:

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

вам следует использовать:

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

Обратите внимание на завершающий обратный слеш. Это гарантирует, что если есть файл с таким же именем, то тест не вернет True.

Связанный контент