пакетный файл - почему обе метки goto выполняются, когда существуют обе папки1 и 2 - PullRequest
0 голосов
/ 26 октября 2018

Для нижеследующего пакетного файла, когда обе или одна папка НЕ ​​существуют, выполняется ТОЛЬКО метка :notfound, что верно, но когда обе папки существуют, метки :bothfound и :notfound выполняются.

Как мы можем запустить ТОЛЬКО выполнить :bothfound, когда существуют обе папки Temp1 и Temp2?

@ECHO OFF

set "folder1=C:\Temp1\"
set "folder2=C:\Temp2\"

IF EXIST %folder1% IF EXIST %folder2% goto bothfound
goto notfound


:bothfound
echo Both folders exist.

:notfound
echo either one or both folder not exist.

echo Done.
pause

1 Ответ

0 голосов
/ 26 октября 2018

Та же проблема, что и у других вопросов .

Пакетные файлы обрабатываются сверху вниз.Если goto не используется для пропуска строк, он выполнит следующую строку.Это не те методы, о которых вы думаете в современном языке программирования;начало нового ярлыка не означает конец предыдущего ярлыка.

:bothfound
echo Both folders exist.
goto end

:notfound
echo either one or both folder not exist.
goto end

:end
echo Done.
pause
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...