Вот полное и безопасное решение!
Во-первых, вам нужно иметь «y» для каждого файла, и не имеет значения, если у вас их слишком много, вы можете иметь сотни, это займет всего несколько секунд и выдает сообщения об ошибках, которые вы никогда не сможете видеть.
Временный файл создается в той же папке, что и ваш файл bat, и будет удален сценарием.
Вы также можете использовать mdelete *, даже если dir * показывает все файлы в подпапках.
@echo off
echo.
:MENU
cls
echo.
echo What do you want to do?
echo.
echo 1 - Delete all files in a folder at FTP using ftp batch script
echo 2 - Cancel
echo 3 - Logout
echo.
set /p choice=
if %choice%==1 goto sure
if %choice%==2 goto cancel
if %choice%==3 goto ?
echo Invalid Choice
echo.
pause
goto MENU
:sure
echo.
echo Are you sure to delete all files y/n
echo.
set /p choice=
if %choice%==y goto delete
if %choice%==Y goto delete
if %choice%==n goto cancel
if %choice%==N goto cancel
echo Invalid Choice
echo.
pause
goto sure
:delete
echo open my-domain.com> temp.txt
echo username>> temp.txt
echo password>> temp.txt
echo cd public_html/directoryname>> temp.txt
echo mdelete *.*>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo y>> temp.txt
echo quit>> temp.txt
REM Start FTP and send it to the script
ftp -s:temp.txt
REM delete the temp-file
del temp.txt
cls
echo.
echo All files are deleted!
echo.
pause
goto MENU
:cancel
echo.
echo You have cancelled the erasement!
echo.
Pause
goto MENU