Пакет - Проверка, если каталог не существует, не работает - PullRequest
0 голосов
/ 18 мая 2018

У меня есть следующий пакетный скрипт:

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS

SET directoryContainsFiles=%~f1

ECHO %directoryContainsFiles%

IF NOT EXIST directoryContainsFiles (
    ECHO "ERROR: 1. Argument -> Directory which should contain source files not found!"
    EXIT /B 1
)

Когда я запускаю команду
rename_media_files.cmd "G:\Projects\Rename Batch Script\testfolder\source"
(на cmd.exe - Windows 10 64 bit) с каталогом, который определенносуществует, directoryContainsFiles получает echo d правильно (G:\Projects\Rename Batch Script\testfolder\source), но предложение IF NOT EXIST не работает, потому что я всегда получаю сообщение об ошибке внутри: ERROR: 1. Argument ....

Я также пытался вызватьсценарий с конечной обратной косой чертой в пути к каталогу:
rename_media_files.cmd "G:\Projects\Rename Batch Script\testfolder\source\"

Я также пытался (с конечной обратной косой чертой и без нее) проверить файл nul:
IF NOT EXIST directoryContainsFiles/nul.

Что не так?

Благодарим вас за помощь.

1 Ответ

0 голосов
/ 18 мая 2018

Попробуйте эту модификацию:

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS

SET "directoryContainsFiles=%~f1"

ECHO=%directoryContainsFiles%

IF NOT EXIST "%directoryContainsFiles%\" (
    ECHO "ERROR: 1. Argument -> Directory which should contain source files not found!"
    EXIT /B 1
)

Однако я не вижу причины для SET переменной в первую очередь:

@ECHO OFF
ECHO=%~f1
IF NOT EXIST "%~f1\" (
    ECHO "ERROR: 1. Argument -> Directory which should contain source files not found!"
    EXIT /B 1
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...