Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление каталогов на FTP из батника

Ответить
Настройки темы
CMD/BAT - [решено] Удаление каталогов на FTP из батника

Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: shraybikus
Дата: 22-04-2009
Помогите пожалуйста очистить каталог FTP. Нужно его очистить вместе со всеми подкаталогами.
mdelete * чистит всё содержимое подкаталогов, а надо грохнуть сами подкаталоги (их имена всё время разные). А для rmd нужно конкретные имена подкаталогов указывать, по маске он не работает.

Отправлено: 14:49, 22-04-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата shraybikus:
для rmd нужно конкретные имена подкаталогов указывать, по маске он не работает »
можно через файл:

- выполнить DIR в текстовый файл;
- отобрать из текста имена каталогов;
- отфильтровать нужные через FindStr;
- сформировать конфиг и запустить RmDir

для конкретики нужен формат вывода DIR - он зависит от движка FTP-сервера
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:16, 23-04-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я сделал dir, но есть ещё ls, его, наверно проще парсить:

ftp> Connected to *.*.*.*♪
open *.*.*.*
220 Microsoft FTP Service
ftp> user ***
331 Password required for ***
230 User *** logged in.
ftp> cd ..
250 CWD command successful.
ftp> cd POST_MONEY_TRANSFER\Download
250 CWD command successful.
ftp> Local directory now D:\GATEWAY\Gate_PP_mailbox.♪
ftp> lcd D:\GATEWAY\Gate_PP_mailbox
binary
200 Type set to I.
ftp> Interactive mode Off .♪
ftp> prompt
dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
04-21-09 04:52PM <DIR> 171108_oplata♪
04-21-09 04:52PM <DIR> 181108_oplata♪
04-21-09 04:52PM <DIR> 191108_oplata♪
226 Transfer complete.
ftp: 162 bytes received in 0,00Seconds 162000,00Kbytes/sec.♪
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
171108_oplata♪
181108_oplata♪
191108_oplata♪
226 Transfer complete.
ftp: 45 bytes received in 0,00Seconds 45000,00Kbytes/sec.♪
ftp> bye
221


Очень нужна конкретика, помогите, пожалуйста.

Отправлено: 09:16, 23-04-2009 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата shraybikus:
есть ещё ls »
ls не отличает каталог от файла, к тому же он у меня почему-то выдает только файлы

пример для каталогов, имя которых начинается на "MISC":
Код: Выделить весь код
@Echo Off
:: ~Параметры соединения
Set $Host=ftp.microsoft.com
Set $User=anonymous
Set $Pass=user@mail.ru
Set $Root=.
:: ~Временные файлы
Set $FFtp=%~dpn0.cfg
Set $FDir=%~dpn0.dir
Set $FTmp=%~dpn0.tmp

If Exist %$FDir% DEL %$FDir%
:: Готовим CFG-файл для FTP:Dir
Echo %$User%>"%$FFtp%"
Echo %$Pass%>>"%$FFtp%"
Echo dir %$Root% "%$FTmp%">>"%$FFtp%"
Echo bye>>"%$FFtp%"
:: Выполняем запрос и формируем список всех каталогов
FTP -s:"%$FFtp%" %$Host%
For /F "Tokens=3* UseBackQ Delims= " %%i In ("%$FTmp%") Do If /I "%%i"=="<DIR>"  Echo %%j>>"%$FDir%"
:: Готовим CFG-файл для FTP:RmDir
Echo %$User%>"%$FFtp%"
Echo %$Pass%>>"%$FFtp%"
For /F "Delims=" %%i In ('FindStr /IBRC:"MISC" "%$FDir%"') Do Echo rmdir "%%i">>"%$FFtp%"
Echo bye>>"%$FFtp%"
:: Выполняем удаление по списку
FTP -s:"%$FFtp%" %$Host%
P.S. формат шаблонов FindStr отличатся от обычных, смотрите справку

Последний раз редактировалось amel27, 23-04-2009 в 12:39. Причина: см ниже

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:17, 23-04-2009 | #4


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата amel27:
формат шаблонов FindStr отличатся от обычных, смотрите справку »
прибил два ключа, оставил только IC, а то не попадали каталоги в список. Но есть затык в виде пробелов на конце имён каталогов:
rmdir "171108_oplata "
rmdir "181108_oplata "
rmdir "191108_oplata "
соответственно rmd не отрабатывает, каталога нету такого говорит.
И ещё, можно ли как-то вообще иключить маску "MISC"? Мне точно неизвестно, как будут называться каталоги.

Отправлено: 12:13, 23-04-2009 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата shraybikus:
затык в виде пробелов на конце имён каталогов »
исправил
Цитата shraybikus:
можно ли как-то вообще иключить маску "MISC"? Мне точно неизвестно, как будут называться каталоги »
в смысле удалять ВСЕ каталоги?.. замени "MISC" на ".*"
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:42, 23-04-2009 | #6


Новый участник


Сообщения: 17
Благодарности: 0

Профиль | Отправить PM | Цитировать


Отлично!!!
Я только добавил Echo cd %$Root% >>"%$FFtp%" в CFG-файл для FTP:RmDir и всё взлетело!!!

Мегареспектище тебе, мегагуру скриптов и повелитель батников!!!

Отправлено: 13:41, 23-04-2009 | #7


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


У меня не удаляются все файлы и каталоги на сервере, выдает ошибку:
Код: Выделить весь код
C:\Documents\bat>ftp_del.bat
Связь с ftp.narod.ru.
220 first-ftp.narod.ru (Libra FTP daemon 0.17 20100219)
Пользователь (ftp.narod.ru:(none)):
331 Password required

230 Logged in, proceed
ftp> dir . "C:\Documents\bat\ftp_del.tmp"
200 PORT command OK
150 Opening data connection
226 Transfer completed
ftp: 202 байт получено за 0,00 (сек) со скоростью 202000,00 (КБ/сек).
ftp> bye
221 Bye
FINDSTR: Не удается открыть C:\Documents\bat\ftp_del.dir
Связь с ftp.narod.ru.
220 first-ftp.narod.ru (Libra FTP daemon 0.17 20100219)
Пользователь (ftp.narod.ru:(none)):
331 Password required

230 Logged in, proceed
ftp> bye
221 Bye
Где может быть ошибка. В коде я исправил только каталог MISC на .*

Отправлено: 15:58, 15-03-2011 | #8


Пользователь


Сообщения: 65
Благодарности: 4

Профиль | Отправить PM | Цитировать


Помогите разрулить с такой проблемой. Заливаю файлы *.xls на диапазон FTP следующим батников.
Цитата:
For /l %%a In (1,1,30) do ftp.exe -v -i -n -s:ftp.cfg 192.168.0.%%a
Возникла необходимость предварительно при коннекте к ftp удалять файлы, которые там уже есть.
Вот содержание ftp.cfg:
Цитата:
USER anonymous anonymous
binary
del Admin/HOME/VERSION_LOG/*
cd Admin/HOME/VERSION_LOG
mput C:\WORK\BAC\*.xls
quit
при этом (при попытке удаления файлов) получаю сообщение от сервака "Admin/HOME/VERSION_LOG/*: The filename, directory name, or volume label syntax is incorrect."
если меняю в конфиге:
Цитата:
USER anonymous anonymous
binary
del Admin/HOME/VERSION_LOG/
cd Admin/HOME/VERSION_LOG
mput C:\WORK\BAC\*.xls
quit
получаю в итоге "Admin/HOME/VERSION_LOG/: Access is denied."
Не пойму, в чем ошибка? При том, что удаленно захожу на FTP через FAR - права на удаления есть. Где-то ошибка в синтаксисе?

Отправлено: 15:02, 24-05-2011 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление каталогов на FTP из батника

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Запуск программ из батника akrav Скриптовые языки администрирования Windows 16 27-05-2009 00:19
CMD/BAT - Удаление пустых каталогов rosalin Скриптовые языки администрирования Windows 1 12-05-2009 15:05
FTP/File - Если сажаю ftp сервер на другой порт, не грузится список каталогов. mitiya Сетевые технологии 11 29-03-2009 19:40
Удаление каталогов после инсталяции bravomcs Автоматическая установка приложений 5 21-08-2006 12:45
Удаление неудаляемых файлов и каталогов Kasper Хочу все знать 52 14-05-2004 00:29




 
Переход