Команда набора файлов не работает в операторе if - PullRequest
0 голосов
/ 31 мая 2018

Не могу понять, почему приведенное ниже приглашение set не будет работать, если оно содержится в операторе if:

@echo off

REM :askdeletecsvs
if exist *.csv (
    echo Warning! All files in the scripts folder that have the "CSV" extension will be deleted!
    echo Answering "n" will continue the script without deleting the CSVs.
    set /p ASKDELETE=Delete CSVs? (y/n): 
REM     
REM     if ( /i %ASKDELETE% equ "y" goto :deletecsvs )
REM     if ( /i %ASKDELETE% equ "n" goto :runscripts )
REM     goto :askdeletecsvs
)

Когда я запускаю пакетфайл, как он выше, окно cmd открывается, а затем быстро закрывается.Если я переместу строку set за пределы оператора if, приглашение отобразится, как и ожидалось.(* * * * * * * * * * * * * * * * * * * * (* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}

1 Ответ

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

Для начала вы использовали закрывающую скобку, которая преждевременно заканчивала вашу открывающую скобку If.

Я бы предложил поменять мышление:

If Not Exist *.csv GoTo runscripts

Echo Warning!
Echo All files in the scripts folder that have the "CSV" extension will be deleted!
Echo Answering "N" will continue the script without deleting the CSVs.
Choice /M "Delete CSVs" 
If ErrorLevel 2 GoTo runscripts

:deletecsvs
Del /F /Q /A "PathTo\scripts\*.csv"
GoTo :EOF

:runscripts

Выпри необходимости можете изменить GoTo :EOF на соответствующую действительную метку или удалить ее, если хотите перейти к :runscripts.Вы также можете заменить PathTo\scripts\ на %~dp0, если пакетный файл запущен из каталога сценариев, или удалить PathTo\scripts\, если текущий каталог содержит эти файлы.(обратите внимание, что текущий каталог и путь к пакетному файлу могут не совпадать)

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