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

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

Ответить
Настройки темы
CMD/BAT - Обработать статус загрузки на FTP

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


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

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


Изображения
Тип файла: png Снимок.PNG
(54.2 Kb, 6 просмотров)
Добрый день.

Прошу в помощи в написания условия удаления файла только в том случае, что получен положительный ответ от FTP сервера.
Код: Выделить весь код
@echo off

set localdir=D:\test
set ftphost=ftp.test.org
set ftpuser=login
set ftppass=password
set ftpdir=test

setlocal enableDelayedExpansion
for /F %%x in ('dir /B/D %localdir%') do (
  set FILENAME=%localdir%\%%x
  curl -v -T !FILENAME! ftp://%ftphost%/%ftpdir%/ --user %ftpuser%:%ftppass%
  если получен ответ 226 Transfer complete = удалить исходный файл, иначе не удалять
)

Отправлено: 16:55, 15-06-2021

 

Аватара для Elven

Ветеран


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

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


Сомнительно, учитывая что это cmd, но можно попробовать так:

Код: Выделить весь код
  curl -v -T !FILENAME! ftp://%ftphost%/%ftpdir%/ --user %ftpuser%:%ftppass% | findstr /L "226 Transfer complete" && (
echo !FILENAME! OK
) || (
echo !FILENAME! KO
)
А зачем в ftp колупаться curl'ом? Есть виндовый cmd'шный клиент (хреновенький, если его не поправили, но вполне себе рабочий), ну и через пошик вроде как тоже можно.

Отправлено: 17:31, 15-06-2021 | #2



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

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


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


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

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


Elven, такая конструкция не подходит, curl воспринимает продолжение строки | findstr /L "226 Transfer complete" && ( -- воспринимает как продолжение команд и вылетает с ошибкой.

Отправлено: 19:43, 15-06-2021 | #3


Забанен


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

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


Цитата Elven:
А зачем в ftp колупаться curl'ом? Есть виндовый cmd'шный клиент
В десятке (je te demande de me pardonner, не скажу точно с какой именно версии) curl является штатным средством командной строки.

pedrosoft, получать код статуса через трассировку (ключ -v) - моветон. Ибо для этих целей есть специальные переменные curl. Например:
Код: Выделить весь код
curl -Lw "%{http_code}" -so nul -I https://ftp.mozilla.org/pub/
Это, правда, если ftp виртуальный - через https, ибо от протокола ftp многие отказываются в виду его небезопасности. Не буду ничего утверждать, но вроде бы в Microsoft также выпилили из curl поддержку сего. Если всё же ошибаюсь, а также -v предпочтительней, должно быть примерно так:
Код: Выделить весь код
for /f "tokens=2" %%i in (
  'curl -sv ftp://ftp.stuff.org/ -T X:\Path\file 2^>^&1
  ^| findstr /irc:"< [0-9]* transfer complete" 2^>nul'
) do (if %%i equ 226 del /f/q X:\Path\file)

Последний раз редактировалось greg zakharov, 15-06-2021 в 20:21.

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

Отправлено: 20:06, 15-06-2021 | #4


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


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

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


greg zakharov, спасибо, попробую предложенный вами вариант. Да я использую ftps, поэтому и выбрал curl.
Попутно спрошу можно ли curl заставить загружать несколько файлов? Сейчас, по всей видимости, после загрузки файла соединение закрывается и потом занова открывается для загрузки следующего файла. Если файлов много, то время на операцию загрузки значительно возрастает.

Отправлено: 07:19, 16-06-2021 | #5


Забанен


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

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


Цитата pedrosoft:
Попутно спрошу можно ли curl заставить загружать несколько файлов?
Последовательно, причём если он собран без c-ares, о распоточивании речи быть не может. Что же до параллельной загрузки, то есть несколько файлов за сессию, лучше использовать aria2.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:21, 16-06-2021 | #6



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
FTP/File - Очень медленная скорость загрузки через FTP Cooller89 Сетевые технологии 8 13-11-2018 13:47
2010 - Статус загрузки презентации, размер 1 гб. voler Microsoft Office (Word, Excel, Outlook и т.д.) 1 23-05-2014 16:28
Загрузка - Ошибка № 10053 при Загрузки файлов на FTP сервер ura1961 Microsoft Windows Vista 0 20-10-2009 23:18
Как обработать событие на PHP fossil Вебмастеру 4 05-10-2005 20:16




 
Переход