удалить все файлы в папке на FTP, используя пакетный скрипт ftp - PullRequest
5 голосов
/ 22 февраля 2012

Пакетный скрипт выглядит следующим образом:

>>ftp.txt open ftp.site.com
>>ftp.txt username
>>ftp.txt password
>>ftp.txt directoryname
>>ftp.txt quit
ftp -s ftp.txt

Как удалить все файлы в папке 'directoryname'?

Ответы [ 2 ]

14 голосов
/ 24 февраля 2012

Поместите следующие команды в ftp.txt и выполните следующую команду для выполнения этой задачи:
ftp -i -s:ftp.txt

содержимое файла ftp.txt:

open ftp.site.com
username
password
cd directoryname
mdelete *
quit
0 голосов
/ 08 июня 2018

Вот полное и безопасное решение!

Во-первых, вам нужно иметь «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
...