Показать полную графическую версию : [решено] скачивание файлов с 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
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
Не ссделать что скачивание происходило допустим файлы с расширением .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 /?
Винда стоит windows embedded » и какая же из множества вариантов?
Wmic Process Where Name="KBrowser2.exe" CALL Terminate »
тоже самое пишет
набери в любом поисковике "resourse kit" »
поставил попробовал через него онологичный результат
SET $SRC=\*.xml
SET $DST=C:\PayKiosk\conf\xml \»
пишет не могу открыть локальную папку
Windows XP embedded SP2 Version 2002
Учетка на правах админа, нет не появилось.
Версия OS - 2002
С taskkill решен вопрос скачал с другого компа закинул в систем32 работает.
зато
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>
и на этом останавливаеться
DeZMoN,
попробуй применить доп. ключи к команде FTP (выключение запросов и подключение отладочного режима):
FTP -d -i -s:"%$FFtp%" %$Host%
Спасибо все помогло вот что в итоге получилось
@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
Все проверил все работает.
DeZMoN,
Попробуйте применить команду MOVE вместо COPY - это избавит Вас от необходимсоти применения команды Del:
MOVE C:\Ubdate\*.xml C:\PayKiosk\conf\
и по поводу команды start, её примение в данном случае не совсем неуместно, т.к. запускаете Вы сценарий Jscript или другой пакетник, а не приложение - поэтому:
Код:
call "C:\PayKiosk\_setup.bat" & rem что позволяет произвести запуск данного пакетного файла с параметрами
cscript //nologo /e:jscript "C:\PayKiosk\run.js" »
Попробуйте применить команду MOVE вместо COPY »
работает как нужно спасибо а
call "C:\PayKiosk\_setup.bat" & rem что позволяет произвести запуск данного пакетного файла с параметрами
cscript //nologo /e:jscript "C:\PayKiosk\run.js" »
пишет не могу найти указаный путь
А и еще такой вопрос а можно как нибуть сделать чтоб он еще и лог написал а в нем все этапы хода выполнения?
DeZMoN,
По поводу пишет не могу найти указаный путь »проверяйте пути к файлам (может Вы снова указали *.js - его нет в последнем варианте).
По поводу а можно как нибуть сделать чтоб он еще и лог написал а в нем все этапы хода выполнения?»
:: Выполняем команду
(
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
Спасибо лог делает все отлично.
Почему когда я указываю в пути от куда копировать поддерикторию то он не хочет от туда копировать
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
как только не пробовал путь прописать не на что не реагирует файлы он определил что есть но почемуто пишет что его нет. Если же файлы положить в корневую папку то все нормально. В чем может быть проблема или я что-то не так прописываю?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.