Войти

Показать полную графическую версию : [решено] Копирование файлов с моего пк на FTP-сервер


zeroua
08-03-2010, 12:38
Хочется реализовать авто подключение и копирование файлов на FTP-сервер с заменой старых. Но тут есть пару нюансов:

структура папок с файлами:

c:\Program Files\Metalex Soft\Tourney Master\Tournaments\css (все содержимое в папку на FTP-сервер в папку с тем же именем)
c:\Program Files\Metalex Soft\Tourney Master\Tournaments\images (все содержимое в папку на FTP-сервер в папку с тем же именем)
c:\Program Files\Metalex Soft\Tourney Master\Tournaments\scripts (все содержимое в папку на FTP-сервер в папку с тем же именем)
c:\Program Files\Metalex Soft\Tourney Master\Tournaments\index.html (в папке c:\Program Files\Metalex Soft\Tourney Master\Tournaments\ есть файл 1х1.Htm его нужно переименовать в index.html перед копирование)

http://s3.sendpic.ru/i/1038/t/FX.jpeg (http://s3.sendpic.ru/i/1038/i/FX.jpeg.html)

Все это нужно скопировать и заменить старые файлы на FTP-сервере

Буду очень признателен за помощь в написании данного скрипта !

amel27
09-03-2010, 12:04
zeroua, вариант через ncftpput (http://www.ncftp.com/ncftp/doc/ncftpput.html) (каталог "...\Tournaments" на FTP должен уже существовать):

@Echo Off

Set ROOT=Program Files\Metalex Soft\Tourney Master\Tournaments
Set USER=anonymous
Set PASS=user@mail.ru

If Exist "C:\%ROOT%\1x1.htm" (
If Exist "C:\%ROOT%\index.html" DEL /F/Q "C:\%ROOT%\index.html"
REN "C:\%ROOT%\1x1.htm" index.html)

ncftpput -u %USER% -p %PASS% -R ftp.dom.local "%ROOT%" "C:\%ROOT%\css"
ncftpput -u %USER% -p %PASS% -R ftp.dom.local "%ROOT%" "C:\%ROOT%\images"
ncftpput -u %USER% -p %PASS% -R ftp.dom.local "%ROOT%" "C:\%ROOT%\scripts"
ncftpput -u %USER% -p %PASS% ftp.dom.local "%ROOT%" "C:\%ROOT%\index.html"

zeroua
09-03-2010, 13:16
amel27, значит мне будет нужно скачать NcFTP Client 3.2.3 for Microsoft Windows из него можно я так понимаю установить только ncftpput, далее создать каталог Tournaments на FTP и выполнить командный файл *.cmd:

@Echo Off

Set ROOT=Program Files\Metalex Soft\Tourney Master\Tournaments
Set USER=anonymous
Set PASS=user@mail.ru

If Exist "C:\%ROOT%\1x1.htm" (
If Exist "C:\%ROOT%\index.html" DEL /F/Q "C:\%ROOT%\index.html"
REN "C:\%ROOT%\1x1.htm" index.html)

ncftpput -u %USER% -p %PASS% -R 10.127.38.150 "%ROOT%" "C:\%ROOT%\css"
ncftpput -u %USER% -p %PASS% -R 10.127.38.150 "%ROOT%" "C:\%ROOT%\images"
ncftpput -u %USER% -p %PASS% -R 10.127.38.150 "%ROOT%" "C:\%ROOT%\scripts"
ncftpput -u %USER% -p %PASS% 10.127.38.150 "%ROOT%" "C:\%ROOT%\index.html"

Я все правильно понял, если нет то поправьте.

amel27
09-03-2010, 15:25
zeroua, скачать, установить, выдернуть ncftpput, создать структуру каталогов, запустить... и зачем дублировать пост? :unsure:

zeroua
10-03-2010, 10:27
amel27, хм возможно я делаю что-то не так но у меня что-то не получается, папка ...\Tournaments после выполнения скрипта пустая, скрин:

http://s3.sendpic.ru/i/10310/t/HFc.jpeg (http://s3.sendpic.ru/i/10310/i/HFc.jpeg.html)

amel27
10-03-2010, 11:01
zeroua, скрипт для целевого пути: "ftp://X.X.X.X/Program Files/Metalex Soft/Tourney Master/Tournaments"

zeroua
10-03-2010, 11:17
amel27, значит должно быть в скрипте:

Set ROOT=ftp://192.168.50.50\Program Files\Metalex Soft\Tourney Master\Tournaments ??? а то похоже я слабо понимаю ...

amel27
10-03-2010, 11:25
zeroua, на FTP должен быть каталог "Program Files/Metalex Soft/Tourney Master/Tournaments" а нужно как?

zeroua
10-03-2010, 11:54
amel27, о получилось ура ! ;) такс теперь последний вопрос если к примеру у меня исходные файлы будут лежать в каталоге c:\Tournaments, то на FTP должен быть только каталог Tournaments я правильно понимаю ну и в скрипте вместо

Set ROOT=Program Files\Metalex Soft\Tourney Master\Tournaments будет Set ROOT=Tournaments

amel27
10-03-2010, 15:34
я правильно понимаю»
правильно, именно так я понял слова "в папку с тем же именем", если структура каталогов на FTP и диске разная это не проблема:

@Echo Off

Set FROM=C:\Program Files\Metalex Soft\Tourney Master\Tournaments
Set FFTP=Tournaments
Set USER=anonymous
Set PASS=user@mail.ru

If Exist "%FROM%\1x1.htm" (
If Exist "%FROM%\index.html" DEL /F/Q "%FROM%\index.html"
REN "%FROM%\1x1.htm" index.html)

ncftpput -u %USER% -p %PASS% -R ftp.dom.local "%FFTP%" "%FROM%\css"
ncftpput -u %USER% -p %PASS% -R ftp.dom.local "%FFTP%" "%FROM%\images"
ncftpput -u %USER% -p %PASS% -R ftp.dom.local "%FFTP%" "%FROM%\scripts"
ncftpput -u %USER% -p %PASS% ftp.dom.local "%FFTP%" "%FROM%\index.html"

zeroua
10-03-2010, 15:47
amel27, о а если скажем просто в корень FTP *? то как тогда нужно написать ?

amel27
10-03-2010, 16:11
если скажем просто в корень FTP *? то как тогда нужно написать ? »Set FFTP=.

zeroua
10-03-2010, 16:16
amel27, я уже и сам понял спс ;)

З.Ы. вы мне сильно помогли ...

Skrytener
04-09-2012, 12:57
Привет всем.
Вопрос в тему: как с помощью ncftpput создать папку в директории на ftp? По документации надо использовать "-m", но никак не могу понять куда его прикрутить. (ситуация такая - у меня есть переменная %V% - hostname компа из которого будет копироваться файл на ftp, компов много и для каждого создать папку с именем компа, где потом будет нужный файл).




© OSzone.net 2001-2012