Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] скачивание файлов с FTP (http://forum.oszone.net/showthread.php?t=182289)

DeZMoN 06-08-2010 11:25 1468066

скачивание файлов с FTP
 
Вобщем такой вопрос пытаюсь создать батник который бы закрывал программу затем скачивал файлы с FTP сервера в определеную папку применял их по средству запуска другово батника и заново запускал программу у меня получилось такй результат кода:
@Echo Off
:: ~Завершаем процес проги
taskkill /f /im KBrowser2.exe

:: ~Параметры соединения
Set $Host=1.1.1.1
Set $User=Логин
Set $Pass=пароль

:: ~Что и куда копируем
SET $SRC=\recipients.xml
SET $DST=C:\PayKiosk\conf\recipients.xml

:: ~Временные файлы
Set $FFtp=%~dpn0.cfg

:: Готовим CFG-файл
Echo.%$User%>"%$FFtp%"
Echo.%$Pass%>>"%$FFtp%"
Echo get "%$SRC%" "%$DST%">>"%$FFtp%"
Echo bye>>"%$FFtp%"

:: Выполняем команду
FTP -s:"%$FFtp%" %$Host%

:: ~Применение новых файлов
start C:\PayKiosk\_setup.bat

:: ~Запуск проги
start C:\PayKiosk\run.js

Теперь сам вопрос запускаю его и он пишет что taskkill is not recognized as an internal or exyernal command, operable program or batch file. в чем проблема и как можно ее исправить? И так же хотельсь бы узнать как можно сделать что скачивание происходило допустим файлы с расширением .xml скачивались в одну папку а .exe в другую а .gif в третью?
Винда стоит windows embedded

deepred 06-08-2010 11:43 1468088

DeZMoN,

Цитата:

Цитата DeZMoN
он пишет что taskkill is not recognized as an internal or exyernal command, operable program or batch file »

, вообще-то есть Google с собственным переводчиком... Это значит что в системе нет утилиты taskkill, наберите в любом поисковике "resourse kit".

попробуйте завершать процесс таким образом:

Код:

Wmic Process Where Name="KBrowser2.exe" CALL Terminate
Не с
Цитата:

Цитата DeZMoN
сделать что скачивание происходило допустим файлы с расширением .xml скачивались в одну папку а .exe в другую »

Используйте маску:
Код:

SET $SRC1=\*.xml
SET $DST1=C:\PayKiosk\conf\xml\*.xml
SET $SRC2=\*.exe
SET $DST2=C:\PayKiosk\conf\exe\*.exe
......
Echo mget "%$SRC1%" "%$DST1%">>"%$FFtp%"
Echo mget "%$SRC2%" "%$DST2%">>"%$FFtp%"
......


или же последующую сортировку посредством команды MOVE:
Код:

MOVE "C:\PayKiosk\conf\*.xml" "C:\PayKiosk\conf\xml\"
и по поводу команды start, её примение в данном случае не совсем неуместно, т.к. запускаете Вы сценарий Jscript или другой пакетник, а не приложение - поэтому:
Код:

call "C:\PayKiosk\_setup.bat" & rem что позволяет произвести запуск данного пакетного файла с параметрами
cscript //nologo /e:jscript "C:\PayKiosk\run.js"

Полезным будет ознакомиться:
CMD>Move /?
CMD>Call /?
CMD>Start /?
CMD>Cscript /?


Цитата:

Цитата DeZMoN
Винда стоит windows embedded »

и какая же из множества вариантов?

DeZMoN 06-08-2010 12:12 1468122

Цитата:

Цитата deepred
Wmic Process Where Name="KBrowser2.exe" CALL Terminate »

тоже самое пишет
Цитата:

Цитата deepred
набери в любом поисковике "resourse kit" »

поставил попробовал через него онологичный результат
Цитата:

Цитата deepred
SET $SRC=\*.xml
SET $DST=C:\PayKiosk\conf\xml \»

пишет не могу открыть локальную папку
Windows XP embedded SP2 Version 2002

DeZMoN 06-08-2010 12:39 1468139

Учетка на правах админа, нет не появилось.
Версия OS - 2002

DeZMoN 06-08-2010 14:08 1468196

С taskkill решен вопрос скачал с другого компа закинул в систем32 работает.
зато
Цитата:

Цитата deepred
SET $SRC1=\*.xml
SET $DST1=C:\PayKiosk\conf\xml\*.xml
SET $SRC2=\*.exe
SET $DST2=C:\PayKiosk\conf\exe\*.exe
rem где * - имя файла
......
Echo mget "%$SRC1%" "%$DST1%">>"%$FFtp%"
Echo mget "%$SRC2%" "%$DST2%">>"%$FFtp%"
...... »

не хочет качать, если так прописать то пишет
200 Type set to A.
mget имя_файла.xml? bye
ftp>
и на этом останавливаеться

deepred 06-08-2010 14:35 1468205

DeZMoN,

попробуй применить доп. ключи к команде FTP (выключение запросов и подключение отладочного режима):

Код:

FTP  -d -i -s:"%$FFtp%" %$Host%

DeZMoN 10-08-2010 10:36 1470626

Спасибо все помогло вот что в итоге получилось
@Echo Off
:: ~Параметры соединения
Set $Host=1.1.1.1
Set $User=Логин
Set $Pass=Пароль

:: ~Что и куда копируем
SET $SRC=\*.*
SET $DST=C:\Ubdate\*.*

:: ~Временные файлы
Set $FFtp=%~dpn0.cfg

:: Готовим CFG-файл
Echo.%$User%>"%$FFtp%"
Echo.%$Pass%>>"%$FFtp%"
Echo mget "%$SRC%" "%$DST%">>"%$FFtp%"
Echo bye>>"%$FFtp%"

:: Выполняем команду
CD C:\Ubdate\
FTP -d -i -s:"%$FFtp%" %$Host%

Taskkill /f /im KBrowser2.exe

Copy C:\Ubdate\*.xml C:\PayKiosk\conf\*.xml
Copy C:\Ubdate\*.exe C:\PayKiosk\lib\*.exe
Copy C:\Ubdate\*.gif C:\PayKiosk\skins\default1280\images-recipients\*.gif
Copy C:\Ubdate\*.key C:\PayKiosk\keys\*.key

Del C:\Ubdate\*.xml
Del C:\Ubdate\*.exe
Del C:\Ubdate\*.gif
Del C:\Ubdate\*.key

:: ~Применение новых файлов
start C:\PayKiosk\_setup.bat

Все проверил все работает.

deepred 10-08-2010 10:47 1470635

DeZMoN,

Попробуйте применить команду MOVE вместо COPY - это избавит Вас от необходимсоти применения команды Del:
Код:

MOVE C:\Ubdate\*.xml C:\PayKiosk\conf\
Цитата:

Цитата deepred
и по поводу команды start, её примение в данном случае не совсем неуместно, т.к. запускаете Вы сценарий Jscript или другой пакетник, а не приложение - поэтому:
Код:
call "C:\PayKiosk\_setup.bat" & rem что позволяет произвести запуск данного пакетного файла с параметрами
cscript //nologo /e:jscript "C:\PayKiosk\run.js" »


DeZMoN 10-08-2010 12:43 1470709

Цитата:

Цитата deepred
Попробуйте применить команду MOVE вместо COPY »

работает как нужно спасибо а
Цитата:

Цитата deepred
call "C:\PayKiosk\_setup.bat" & rem что позволяет произвести запуск данного пакетного файла с параметрами
cscript //nologo /e:jscript "C:\PayKiosk\run.js" »

пишет не могу найти указаный путь
А и еще такой вопрос а можно как нибуть сделать чтоб он еще и лог написал а в нем все этапы хода выполнения?

deepred 10-08-2010 22:34 1471059

DeZMoN,

По поводу
Цитата:

Цитата DeZMoN
пишет не могу найти указаный путь »

проверяйте пути к файлам (может Вы снова указали *.js - его нет в последнем варианте).

По поводу
Цитата:

Цитата DeZMoN
а можно как нибуть сделать чтоб он еще и лог написал а в нем все этапы хода выполнения?»

Код:

:: Выполняем команду
(
CD C:\Ubdate\
Echo ---------------------------------------------------------------------------------
FTP -d -i -s:"%$FFtp%" %$Host%
Echo ---------------------------------------------------------------------------------
Taskkill /f /im KBrowser2.exe
Echo ---------------------------------------------------------------------------------
Move C:\Ubdate\*.xml C:\PayKiosk\conf\
Move C:\Ubdate\*.exe C:\PayKiosk\lib\
Move C:\Ubdate\*.gif C:\PayKiosk\skins\default1280\images-recipients\
Move C:\Ubdate\*.key C:\PayKiosk\keys\
:: ~Применение новых файлов
Echo ---------------------------------------------------------------------------------
start C:\PayKiosk\_setup.bat
) > Disk:\Path\log


DeZMoN 11-08-2010 11:53 1471325

Спасибо лог делает все отлично.
Почему когда я указываю в пути от куда копировать поддерикторию то он не хочет от туда копировать
SET $SRC=Ubdate\*.*
в логе пишет
Connected to ХХ.ХХХ.ХХХ.ХХХ.
220 Serv-U FTP Server v10.1 ready...
User (ХХ.ХХХ.ХХХ.ХХХ: (none)): --->
USER Логин
331 User name okay, need password.
--->
PASS Пароль
230 User logged in, proceed.
ftp> ---> mget "Ubdate/*.*" "C:\Ubdate\*.*"
TYPE A
---> PORT 10,210,10,83,4,199
---> NLST Ubdate/*.*
---> PORT 10,210,10,83,4,201
---> NLST C:\Ubdate\*.*
---> TYPE A
200 Type set to A.
---> PORT 10,210,10,83,4,203
200 PORT command successful.
---> RETR kredit.gif
550 /kredit.gif: No such file or directory.
---> PORT 10,210,10,83,4,205
200 PORT command successful.
---> RETR recipients.xml
550 /recipients.xml: No such file or directory.
ftp> ---> bye
QUIT
как только не пробовал путь прописать не на что не реагирует файлы он определил что есть но почемуто пишет что его нет. Если же файлы положить в корневую папку то все нормально. В чем может быть проблема или я что-то не так прописываю?


Время: 06:52.

Время: 06:52.
© OSzone.net 2001-