Автопереименование файлов при копировании на FTP
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Автопереименование файлов при копировании на FTP
Здравствуйте.
Скажите пожалуйста можно ли как нибудь сделать что бы ТС переименовывал файлы автоматически при копировании файлов на ФТП сервер файл1, файл2....файл999. Вариант сначала переименовать потом залить не подойдёт.
Я думаю, что должно быть что-то вроде автоинкримента.
Спасибо.
[mod="Avada"]Заголовок уточнён.[/mod]
Скажите пожалуйста можно ли как нибудь сделать что бы ТС переименовывал файлы автоматически при копировании файлов на ФТП сервер файл1, файл2....файл999. Вариант сначала переименовать потом залить не подойдёт.
Я думаю, что должно быть что-то вроде автоинкримента.
Спасибо.
[mod="Avada"]Заголовок уточнён.[/mod]
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
Внутренних средств в Тотале нет. Я бы и сам поднатужился, батник сваял, но у нас есть куда более компетентные товарищи, например, Tol!k. Только предупреждаю, он будет дотошно задавать всякие вопросы: одинаковы ли путь-источник и путь-приемник, сколько разрядов в номере, в одной ли директории файлы, и т.д. Так что лучше заранее поставить задачу до неприличия подробно.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Вахмурка, батник тут наверное будет написать проблематично, так как вторая панель - FTP-папка.
Типов плагинов для реализации данной функции тоже нет, разве что писать весь FTP-клиент как плагин файловой системы и в него добавлять подобную функциональность (и то может не работать, если тотал будет сам проверять существование файла перед копированием, а не спрашивать у плагина.
Типов плагинов для реализации данной функции тоже нет, разве что писать весь FTP-клиент как плагин файловой системы и в него добавлять подобную функциональность (и то может не работать, если тотал будет сам проверять существование файла перед копированием, а не спрашивать у плагина.
Код: Выделить всё
@echo off &setlocal enableextensions
rem Параметры: <список_файлов> <хост> <удалённая_папка>
rem например : %L ftp.web.com "pub/web/base/"
rem Удалённая папка должна существовать
rem Автор : Tol!k
set "prefix=file"
rem Цифр после префикса (надеюсь, 9 хватит):
set "nums=4"
set "host=%~2"
set "remote=%~3"
set /p user=User:
set /p pass=Password:
>get.list.tmp echo user %user% %pass%
>>get.list.tmp echo cd %remote%
>>get.list.tmp echo ls %prefix%* ftp.list.tmp
>>get.list.tmp echo bye
ftp -n -v -s:get.list.tmp %host%
del /q get.list.tmp
set "digs="
for /l %%i in (1,1,%nums%) do call set "digs=%%digs%%[0-9]"
for /f "delims=" %%n in (
'sort /r ftp.list.tmp ^|findstr /rc:"^%prefix%%digs%\..*"'
) do (set "last=%%~nn" &goto :next)
:next
call set "last=%%last:%prefix%=%%"
if "%last:~0,1%"=="0" call :loop
if "%last%"=="" set "last=0"
>put.list.tmp echo user %user% %pass%
>>put.list.tmp echo cd %remote%
for /f "usebackq delims=" %%l in ("%~1") do call :put "%%l"
>>put.list.tmp echo bye
ftp -n -v -s:put.list.tmp %host%
del /q put.list.tmp ftp.list.tmp
pause
goto :eof
:put
set /a last+=1
set "next=000000000%last%"
>>put.list.tmp call echo put %1 "%prefix%%%next:~-%nums%%%%~x1"
rem Если нужно менять и расширение тоже:
rem >>put.list.tmp call echo put %1 "%prefix%%%next:~-%nums%%%.ext"
goto :eof
:loop
set "last=%last:~1,9%"
if "%last:~0,1%"=="0" call :loop
goto :eof
Последний раз редактировалось Tol!k Ср фев 23, 2011 11:48, всего редактировалось 1 раз.
Пароль не хранится. Это тестовые строки.
rem set "user=anonymous"
rem set "pass=bug@host.com"
Нужно удалить от греха
Пароль запрашивается здесь, интерактивно
set /p user=User:
set /p pass=Password:
хост set "host=ftp.web.com"
удалённая папка set "remote=pub/web/base/"
префикс для файлов set "prefix=file"
т.е. будет получаться ftp://ftp.web.com/pub/web/base/file0000.ext
Важно! папка не создаётся, т.е. уже должна существовать
rem set "user=anonymous"
rem set "pass=bug@host.com"
Нужно удалить от греха
Пароль запрашивается здесь, интерактивно
set /p user=User:
set /p pass=Password:
Я думал и так понятночто и где менять
хост set "host=ftp.web.com"
удалённая папка set "remote=pub/web/base/"
префикс для файлов set "prefix=file"
т.е. будет получаться ftp://ftp.web.com/pub/web/base/file0000.ext
Важно! папка не создаётся, т.е. уже должна существовать
Последний раз редактировалось Tol!k Пн фев 14, 2011 13:39, всего редактировалось 1 раз.
Я и сейчас не сразу понял, что тебе нужны изменения чтобы вся хрень передавалась параметрамиЯ о параметрах
Код: Выделить всё
rem set "host=ftp.web.com"
rem set "remote=pub/web/base/"
set "host=%~2"
set "remote=%~3"
rem Параметры: <список_файлов> <хост> <удалённая_папка> User Password
rem например : %L ftp.web.com "pub/web/base/" anonymous "bug@host.com"
...
rem set /p user=User:
rem set /p pass=Password:
set "user=%~4"
set "pass=%~5"хост и папку сделал параметрами, User и Password оставил запросом
Последний раз редактировалось Tol!k Ср фев 23, 2011 11:55, всего редактировалось 1 раз.