Ошибка открытия файла макроса ftp

mol2751

10 / 10 / 3

Регистрация: 08.07.2015

Сообщений: 179

1

«Ошибка при открытии файла макроса…»

07.04.2016, 10:51. Показов 3229. Ответов 7

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

У меня батник настроенный на работу с FTP. На машине с WINXP он работает отлично.
Перенес на машину с WIN 8.1, выдает «Ошибка открытия файла макросаsend.txt

Сам батник

Windows Batch file
1
2
ftp -s:send.txt -i 192.168.0.101
pause

ну и в папке с батником лежит send.txt



0



4332 / 2122 / 661

Регистрация: 26.04.2015

Сообщений: 6,823

07.04.2016, 14:19

2

Цитата
Сообщение от mol2751
Посмотреть сообщение

ну и в папке с батником лежит send.txt

— не верю, проверил только что: нет файла, сразу пишет Ошибка открытия файла макросаsend.txt, есть — открывает.

Добавлено через 47 секунд
Проверьте наличие имя расширение.



0



10 / 10 / 3

Регистрация: 08.07.2015

Сообщений: 179

08.04.2016, 08:28

 [ТС]

3

Скопировал батник и файл на вторую машину с Вин8.1, там работает…. а на первой, так и не заводится….что за чудеса.

Добавлено через 16 минут
Так, победил это добро. Перенес файл txt в корень диска C, и батник его открыл. Если же ткст лежит в папке с батником, то ругается на невозможность открытия.



0



4332 / 2122 / 661

Регистрация: 26.04.2015

Сообщений: 6,823

08.04.2016, 12:17

4

mol2751, Видимо запуск где-то под админом, а где-то нет и поиск рядом с собой в папке запуска у админа (cmd из system32) пляшет от корня, а иначе достаточно папки в которой батник.

Добавлено через 1 минуту
полный путь к txt решил бы все проблемы, но я не знаю позволит ли это синтаксис ftp.



0



10 / 10 / 3

Регистрация: 08.07.2015

Сообщений: 179

08.04.2016, 12:20

 [ТС]

5

Полный путь пытался и так и сяк. Не кушает(
Да возможно дело с правами доступа, так как сам батник приходится запускать через пкм Запуск от администратора.



0



ComSpec

3455 / 1993 / 635

Регистрация: 26.02.2014

Сообщений: 1,457

08.04.2016, 18:14

6

Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Цитата
Сообщение от mol2751
Посмотреть сообщение

ну и в папке с батником лежит send.txt

Ну и пусть там и остаётся лежать.

Только код, выполнение которого не зависит от способа запуска пакетного файла, должен быть таким:

Windows Batch file
1
ftp -s:"%~dp0send.txt" -i 192.168.0.101

.



1



alpap

08.04.2016, 19:05

Не по теме:

Цитата
Сообщение от ComSpec
Посмотреть сообщение

«%~dp0send.txt»

— ага, значит путь можно все-таки задать, только правильно.



0



10 / 10 / 3

Регистрация: 08.07.2015

Сообщений: 179

11.04.2016, 08:38

 [ТС]

8

-s:»%~dp0send.txt»

Помогло! Спасибо!



0



Представляю вашему вниманию инструментарий для работы с файлами по FTP

Как известно, отправить файл на FTP сервер (или загрузить файл с FTP, создать папку на FTP сервере, и т.д.) можно при помощи таких API-функций из библиотеки wininet.dll, как FtpPutFile, FtpGetFile, FtpRenameFile, FtpDeleteFile, FtpRemoveDirectory, FtpCreateDirectory, FtpFindFirstFile и т.д.

Как именно использовать эти функции — можете посмотреть в коде надстройки для отправки файлов Excel на FTP сервер

В чем недостаток этого способа — так это в необходимости обеспечения совместимости кода с различными платформами.
В частности, чтобы код с функциями API работал и в Office 2010, и в 64-битной Windows, необходимо заметно увеличить объём кода. А, поскольку описание этих функций из wininet.dll и без того занимает много места (а универсальный код вообще займёт сотню строк), да и надо ещё и разбираться во всех этих функциях, т.к. в разных версиях Windows возможны различия в способе вызова функций из wininet.dll, и были созданы аналоги этих функций для работы с FTP, не использующие WinAPI

Сподвигла меня на это решение необходимость реализации средств обновления надстроек Excel, где необходимо было реализовать функционал отправки файлов Excel на FTP сервер, причем так, чтобы это стабильно работало на всех компьютерах. Попутно, кстати, родилась и функция загрузки файла с сервера без использования WinAPI, которая тоже вошла в состав данного инструментария.

Основу предлагаемого мной решения составляет модуль класса FTPcommander, который предоставляет вам следующие функции:

  • Function DownloadFile(ByVal FtpFolder$, ByVal FtpFilename$, ByVal LocalPath$) As Boolean
    (Функция скачивает файл с FTP-сервера с именем FtpFilename$ из папки FtpFolder$. Скачанный файл сохраняется на компьютере под именем (и по пути) LocalPath$. Функция возвращает TRUE, если загрузка файла завершилась успешно)
  • Function UploadFile(ByVal LocalPath$, Optional ByVal FtpFolder$, Optional ByVal FtpFilename$ = «») As String
    (Функция загружает файл LocalPath$ по FTP на сервер в папку FtpFolder$. Если задан параметр FtpFilename$, отправленный файл получает имя FtpFilename$. Функция возвращает ссылку на файл, если закачка файла завершилась успешно)
  • Function CreateNewFolder(ByVal FtpFolder$) As Boolean
    (Функция создаёт папку FtpFolder$ на FTP сервере. Возвращает TRUE, если папка была успешно создана, или существовала ранее)
  • Function DeleteFile(ByVal FtpFolder$, ByVal FtpFilename$) As Boolean
    (Функция создаёт папку FtpFolder$ на FTP сервере. Возвращает TRUE, если папка была успешно создана, или существовала ранее)
  • Function DownloadFileFromURL(ByVal URL$, ByVal LocalPath$) As Boolean
    (Функция скачивает файл по ссылке URL$, и сохраняет его по пути LocalPath$. Возвращает TRUE, если файл был успешно загружен)
  • Функция GetLastError возвращает информацию об ошибке, если некая функция была завершена некорректно (возвратила FALSE)

Дополнительно в составе модуля класса есть функции чтения и записи текстовых файлов ReadTXTfile и SaveTXTfile, а также функции перекодировки файлов и текста ChangeFileCharset и ChangeTextCharset

Как использовать модуль класса FTPcommander для работы с файлами по FTP:

1) Откройте прикреплённый к статье файл Excel, и мышом перетащите модуль класса FTPcommander в свой файл

2) Пропишите настройки FTP аккаунта в специальной функции, или сохраните их в реестре Windows
(подробнее об этом — ниже)

3) В своём макросе создаёте экземпляр класса FTPcommander, и используете его методы для работы с файлами
Создать экземпляр класса вам поможет следующий код:  Dim FTP As New FTPcommander
Примеры макросов отправки и скачивания файлов доступны в прикреплённом файле
(в модуле mod_TestFTP):

Вот один из примеров использования класса FTPcommander:

Private Sub ЗагрузкаФайлаНаFTPсервер()
    ' Этот макрос загружает файл "C:ПЖиВ.jpg" в корневую папку FTP сервера,
    ' переименовывая файл в "ER"
    Dim FTP As New FTPcommander
    Link$ = FTP.UploadFile("C:ПЖиВ.jpg", , "ER")
 
    ' В переменную Link$ возвращается ссылка вида "http://u3661.seiko.vps-private.net/ER",
    ' по которой доступен загруженный через FTP файл
End Sub

Как видите, всего 2 строки кода, — и ваш файл оказался загружен на FTP сервер.

Ещё один пример использования:

Private Sub ЗагрузкаСПоследующимСкачиваниемФайла()
    Dim FTP As New FTPcommander
    fn$ = "C:Documents and SettingsAdminРабочий столstamp.png"
 
    ' отправляем файл с рабочего стола на FTP сервер
    ' (на сервере файл получит имя "1 2 3.png")
    Link$ = FTP.UploadFile(fn$, , "1 2 3.png")
    If Len(Link$) Then
        Debug.Print "Загруженный файл доступен по ссылке: ", Link$
    Else
        Debug.Print "Ошибка: ", FTP.GetLastError
    End If
 
    ' а теперь скачиваем с сервера ранее загруженный файл "1 2 3.png"
    ' Скачанный файл окажется в той же папке (Рабочий стол),
    ' и получит имя "stamp.png222"
    res = FTP.DownloadFile("", "1 2 3.png", fn$ & "222")
    If res Then
        Debug.Print "Файл успешно загружен с FTP"
    Else
        Debug.Print "Ошибка: ", FTP.GetLastError
    End If
End Sub

Есть 2 способа задать настройки FTP аккаунта для использования объектом FTPcommander:

1 способ — один раз запустить макрос следующего вида:

Sub Save_FTP_Account_Information()    ' достаточно запустить ОДИН РАЗ!
    ' Cохраняем в реестре Windows настройки FTP-аккаунта по-умолчанию
    SaveSetting Application.Name, "FTP", "Host", "Имя или IP адрес сервера FTP"
    SaveSetting Application.Name, "FTP", "Login", "Имя пользователя (логин)"
    SaveSetting Application.Name, "FTP", "Password", "Пароль к FTP серверу"
    SaveSetting Application.Name, "FTP", "BaseFolder", "путь к стартовой папке, например, /www/"
    SaveSetting Application.Name, "FTP", "BaseURL", "http://Адрес Вашего Сайта, куда будут закачиваться файлы/"
End Sub

Этот макрос запишет все необходимые настройки в реестр Windows, и впоследствии будет брать их оттуда

Преимущество этого способа: один раз запустили макрос, потом удалили его, — и можно нигде в коде не прописывать секретные данные FTP аккаунта

Недостаток этого способа: при хранении настроек в реестре, возможен доступ только к одному FTP серверу

2 способ — для инициализации объекта FTPcommander использовать специальные функции с настройками:

Function MyFTPaccount() As FTPcommander
    ' возвращает объект типа FTPcommander, с нужными настройками
    Set MyFTPaccount = New FTPcommander
    With MyFTPaccount
        .Host = "Имя или IP адрес сервера FTP"
        .Login = "Имя пользователя (логин)"
        .Password = "Пароль к FTP серверу"
        .BaseFolder = "путь к стартовой папке, например, /www/"
        .BaseURL = "http://Адрес Вашего Сайта, куда будут закачиваться файлы/"
    End With
End Function

Пример использования функции:

Sub test()
    Dim FTP As FTPcommander    ' объявляем переменную
    Set FTP = MyFTPaccount    ' создаём объект с нужными настройками
    FTP.UploadFile ("C:123.jpg")    ' отправляем файл на сервер
End Sub

Преимущества этого способа: возможно работать с несколькими FTP серверами одновременно, конфиденциальные данные (настройки FTP аккаунта) не хранятся в открытом виде в реестре

Недостаток этого способа: настройки FTP аккаунта хранятся в коде VBA — если файл попадёт постороннему человеку, он легко сможет добраться до этих настроек (как известно, любые пароли на VBA ломаются за секунду)

На клиентской машине установлена Win7.
На сервере Ubuntu 14.04 c VSFTPD.
Когда на клиентской машине запускаю консоль и пытаюсь подсоединиться через FTP — получается.
Но хотелось бы автоматизировать действия и для этого сделал небольшой батник

ftp -s:enter.txt -i 192.168.5.3
cd 1C
mput C:UserssyaDesktopDocuments.rar

В той же папке, откуда я запускаю *.bat-файл лежит enter.txt со списком команд:

MyLogIn
MyPassword
cd 1C
mput C:UserssyaDesktopDocuments.rar

Но при запуске *.bat-файла мне консоль пишет:

C:Userssya>ftp -s:enter.txt -i 192.168.5.3
ошибка открытия файла макросаenter.txt

Обмен файлами с компьютером, на котором запущена служба
сервера FTP. FTP может использоваться интерактивно.

FTP [-v] [-d] [-i] [-n] [-g] [-s:имя_файла] [-a] [-A] [-x:sendbuffer]
    [-r:recvbuffer] [-b:asyncbuffers] [-w:windowsize] [узел]

Если же я пропишу жесткий путь

ftp -s:C:UserssyaDesktopenter.txt -i 192.168.5.3
cd 1C
mput C:UserssyaDesktopDocuments.rar

, то:

C:Userssya>ftp -s:"C:UserssyaDesktopenter.txt" -i 192.168.5.3
Связь с 192.168.5.3.
220 (vsFTPd 3.0.2)
Пользователь (192.168.5.3:(none)):
331 Please specify the password.

530 Login incorrect.
Сбой входа.
ftp> cd 1C
530 Please login with USER and PASS.
ftp> mput C:UserssyaDesktopDocuments.rar
C:UserssyaDesktopDocuments.rar:
ftp>

Пытался сделать так, как написано на stackoverflow, но что-то тоже не получилось.
И никак не могу определить, где я ошибся.

Смотрите последний параметр функции Workbooks.Open

CorruptLoad Optional XlCorruptLoad Can be one of the following constants: xlNormalLoad, xlRepairFile and xlExtractData. The default behavior if no value is specified is xlNormalLoad and does not attempt recovery when initiated through the OM.

код будет выглядеть примерно так:

Код
On Error Resume Next : err.clear
set wb =  Workbooks.Open(filename$) ' попытка открыть файл «нормально»
if err.number=1004 then  ' если не получилось - пробуем восстановить файл при открытии
  err.clear 
  set wb =  Workbooks.Open(filename$, CorruptLoad:=xlRepairFile )
end if

if err then msgbox "не удалось открыть файл": exit sub

PS: перемудрили что-то с форумом, невозможно код писать, — приходится в режиме bb code постоянно исправлять глюки

Страница 1 из 2


  1. Zel-Gr

    Zel-Gr
    New Member
    Пользователи

    Регистрация:
    16 июл 2014
    Сообщения:
    10

    Указаны все настройки по подключению, которые работают в FTP клиенте.
    При нажатии «Проверить соединение» следующая ошибка:Папки для загрузки менял и создавал для них разные доступы. Все равно ошибка.


  2. Root

    Root
    Администратор
    Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.817
    Город:
    Барнаул

    Здравствуйте.
    Какую рабочую папку указали?


  3. Root

    Root
    Администратор
    Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.817
    Город:
    Барнаул


  4. Zel-Gr

    Zel-Gr
    New Member
    Пользователи

    Регистрация:
    16 июл 2014
    Сообщения:
    10

    Папку: site.ru/public_html
    Пробывал: site.ru/public_html/cd. Пробелов в конце адреса нет.


  5. Root

    Root
    Администратор
    Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.817
    Город:
    Барнаул

    Попробуйте другой хостинг. У меня и у моих коллег работает хорошо. Тестировали много раз. В чем у вас проблема — непонятно. Судя по ошибке — не так указали рабочую папку…


  6. Root

    Root
    Администратор
    Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.817
    Город:
    Барнаул

    Если хотите, напишите мне в Skype, посмотрим по TeamViewer, что у вас там такое…


  7. Zel-Gr

    Zel-Gr
    New Member
    Пользователи

    Регистрация:
    16 июл 2014
    Сообщения:
    10

    Хостинг работает на VPS может ли быть дело в этом?
    Указывал конкретно:

    **Скрытое содержимое: доступно при наличии 1 постов.**


  8. Root

    Root
    Администратор
    Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.817
    Город:
    Барнаул

    Так мы будем только гадать…


  9. Zel-Gr

    Zel-Gr
    New Member
    Пользователи

    Регистрация:
    16 июл 2014
    Сообщения:
    10

    Решение было найдено.
    FTP доступ был на папку cd в public_html.
    Был создан FTP доступ на уровень выше и в названии папки поставлено только cd.
    Теперь работает!


  10. Zel-Gr

    Zel-Gr
    New Member
    Пользователи

    Регистрация:
    16 июл 2014
    Сообщения:
    10

    После установки соединения следующий вопрос:
    Как сделать так чтобы генерируемые .csv файлы которые находятся в папке на компьютере автоматически загружались в нужную папку на ftp заменяя файлы с таким же названием там?
    Сделать это при запуске программы.
    Насколько я успел узнать нужно сделать .bat файл и загрузить в программу.
    Как он должен выглядеть, что содержать?


  11. Root

    Root
    Администратор
    Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.817
    Город:
    Барнаул

    Функции работы с FTP создавались для автозагрузки туда картинок и файлов, скачанных макросом DOWNLOADFILE.
    Я могу лишь предложить дождаться нового макроса загрузки любых файлов с диска на FTP. По срокам ничего не могу сказать, но постараюсь сделать в ближайшие 1-2 недели…


  12. Zel-Gr

    Zel-Gr
    New Member
    Пользователи

    Регистрация:
    16 июл 2014
    Сообщения:
    10


  13. Zel-Gr

    Zel-Gr
    New Member
    Пользователи

    Регистрация:
    16 июл 2014
    Сообщения:
    10

    Уже можно использовать результат работ по созданию макроса загрузки любых файлов на FTP?


  14. Root

    Root
    Администратор
    Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.817
    Город:
    Барнаул

    Здравствуйте.

    Каюсь, но пока, увы, нет.


  15. Kreol

    Kreol
    Модератор
    Команда форума
    Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.645

    Если вам нужно загружать очень много файлов и больших объемов, загрузка через любой клиент будет намного быстрее. (filezilla, WinSCP)


  16. nail

    nail
    Member
    Пользователи

    Регистрация:
    15 сен 2014
    Сообщения:
    60

    Zel-Gr хочет наверное все-таки, чтобы автоматом после парсинга новый CSV на хост загружался поверх старого, либо в дополнение к существующему csv.
    А в самой CMS для импорта уже подхватываем CSV на выбор.
    Было бы замечательно. Меньше телодвижений filezilla, WinSCP.:blush:


  17. Root

    Root
    Администратор
    Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.817
    Город:
    Барнаул

    А вот это уже поинтереснее! =)
    Господин Zel-Gr, можно ли конкретизировать этот момент?
    Спасибо!


  18. Zel-Gr

    Zel-Gr
    New Member
    Пользователи

    Регистрация:
    16 июл 2014
    Сообщения:
    10

    Да, все верно насчет автоматом на хост с перезаписью.
    Допустим имеется несколько поставщиков у магазина. После парсинга программой по каждому создается файл CSV с заданным названием и загружается на хост, перезаписывая старый. Далее скрипт, добавленный в CRON, берет в определенное заданное время поочереди все эти файлы и загружает в базу изменения.
    Можно ли сделать так, чтобы после включения программы при нажатии одной кнопки парсилось по очереди несколько проектов?
    Тогда весь процесс:
    1. Включить программу
    2. Запустить задание на парсинг нескольких проектов за небольшое время до времени заданного CRON


  19. Root

    Root
    Администратор
    Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.817
    Город:
    Барнаул

    Большое спасибо за информацию!

    Для запуска очереди проектов используйте планировщик программы (соответствующая кнопка на панели инструментов главного окна программы).

    С уважением к вам, Сергей.


  20. kagorec

    kagorec
    Администратор
    Команда форума
    Администратор

    Ссылки недоступны для гостей -Ура обновление вышло, теперь можно контент грузить в любой движек (при обработчике на стороне сервера)!

Страница 1 из 2

Поделиться этой страницей


Форум по парсингу сайтов и интернет магазинов

I have VBA code that opens csv files which are located on an ftp server using the following syntax:

Workbooks.Open Filename:="ftp://username:password@'ftpaddress'"

Each day of the month has its own file, and I must open every file in the current month. My issue is that after opening and manipulating several files, I get a Run-time error 1004: Microsoft Excel cannot access the file.

If I hit Debug, and then continue, the macro will continue working. Any help would be appreciated.

Почему так?

Ø

Я
   Пух

15.06.05 — 14:16

Есть внешняя robot.ert; В ней:
Процедура ПриОткрытии()
//Создадим файл сценария для ftp.exe
ТФ = СоздатьОбъект(«Текст»);
ТФ.КодоваяСтраница(0);
ТФ.Очистить();
ТФ.ДобавитьСтроку(«login»);
ТФ.ДобавитьСтроку(«password»);
ТФ.ДобавитьСтроку(«binary»);
ТФ.Записать(КаталогИБ()+»Robotftp.ftp»);
ФайлЗапуска = КаталогИб()+»Robotexchange.cmd»;
КомандаСистемы(ФайлЗапуска);
КонецПроцедуры //ПриОткрытии()

внутри exchange.cmd:
ftp.exe -d -s:ftp.ftp ftp.maxcom.ru
Проблема в следующем: если я запускаю ert руками из 1с, то к ftp коннектимся без проблем. Если же ert запускается из ГМ (в ПриНачалеРаботыСистемы() есть строка:
ОткрытьФорму(«Отчет»,, КаталогИб()+»Robotrobot.ert»);
то выдается ошибка:
C:WorkATC_2005UsersRobot>ftp.exe -d -s:ftp.ftp ftp.maxcom.ru
ошибка открытия файла макроса ftp.ftp
Т.е. ftp.exe в первом случае (запускаю сам) выполняется в каталоге где лежит ert а во втором (запускаю из ГМ) выполняется в каталоге пользователя. Почему так?

   101

1 — 15.06.05 — 14:18

обработка ожидания

   АЛьФ

2 — 15.06.05 — 14:18

2(0) Установи текущий каталог.

   Пух

3 — 15.06.05 — 14:22

Как поправить то понятно, интересует сам факт: Почему один и тот же набор каманд, при разном запуске, отрабатывается в разных каталогах?

   АЛьФ

4 — 15.06.05 — 14:27

2(3) Потому что разный текущий каталог.

   Strawberry

5 — 15.06.05 — 14:30

Особенности …….. когда «(запускаю сам) » — то ты выбираешь папку в которой лежит отчет она становиться папкой по умолчанию. Когда «(запускаю из ГМ) » каталог по умолчанию каталог пользователя.

   user1C

6 — 15.06.05 — 14:37

(5)+
Или КаталогИБ(), если пользователи не определены.

  

Пух

7 — 15.06.05 — 14:39

(5) Шпенькс

TurboConf — расширение возможностей Конфигуратора 1С

0x00 фон

В последнее время из-за эпидемии было скучно сидеть дома, поэтому я сделал несколько макросов на Excel.

Excel использует язык vba для реализации макросов. Хотя я не изучил его, но общий код можно понять, я сделал небольшой скрипт для открытия Excel для автоматического запуска макросов и загрузки файлов на локальный ftp-сервер.

Конфигурация 0x01

Во-первых, вам нужно открыть макросы Excel, в начале excel- «параметры-» центр доверия- «настройки макросов» включить все макросы, как показано ниже.

После настройки макроса вы можете приступить к программированию макроса. Чтобы

В параметрах средства разработки выберите Visual Basic, чтобы войти в интерфейс программирования макросов.

После входа в интерфейс программирования дважды щелкните Thisbook слева, чтобы войти в модуль программирования текущего рабочего листа.

Наконец, установите автоматический запуск макроса и автоматически запускайте макрос при открытии Excel. Выберите открыть на вкладке справа

На этом настройка Excel завершена.

0x02 vba реализует загрузку по ftp

Я долго искал в Интернете, чтобы найти его. Вначале я собираюсь использовать способ доступа к dos, а затем постепенно передаю команду. Но обнаружено, что excel не просто передает строку в команду dos для запуска, а напрямую вызывает команду dos для выполнения, что делает невозможным передачу одного символа в команду dos. Если вы запустите команду aaa, она сразу вернет «недопустимую команду».

Но все же запишите метод вызова командной строки, на случай, если он пригодится в будущем =. знак равно

Sub main()
   Shell "cmd /k ping 127.0.0.1", 1
End Sub

Код очень прост, просто вызовите встроенную функцию интерфейса напрямую. Передняя часть представляет собой строковую команду, а задняя 1 представляет собой черное окно запущенной команды dos. 0 означает, что она не выполняется (это хорошо!)

Однако этот метод не поддерживает использование команд 1 && в dos. Я не знаю почему.

Ниже приведен метод, который я нашел.

Sub main()
    Dim env_addr, env_user, env_passwd, localftp, ftpfile, cfgfile As String
    env_addr = "192.168.230.129"
    env_user = "Имя пользователя"
         env_passwd = "Пароль"
    localftp = "D:"
    ftpfile = "/123.txt"
    cfgfile = "D:1123.txt"
    If Dir(ftpfile) <> Empty Then
                 MsgBox «Файл успешно загружен»
        Exit Sub
    End If
    Open cfgfile For Output As #1
    Print #1, "open " & env_addr
    Print #1, env_user
    Print #1, env_passwd
    Print #1, "lcd " & localftp
    Print #1, "bin"
    Print #1, "prompt"
    Print #1, "get " & ftpfile
    Print #1, "bye"
    Close #1
    Shell "ftp -s:" & cfgfile, 1
End Sub

Излишне говорить, что первые три параметра

localftp — это каталог локального хранилища

ftpfile — это путь и имя файла на ftp-сервере, который нужно получить

cfgfile — текущий файл конфигурации, серия наборов команд, которые необходимо выполнить

Следующее открытое — это процесс создания набора команд.

Наконец, запустите команду в виде Shell.

Я пытаюсь использовать макрос teraterm в vxworks

как это. имя файла = test-mbedtls.ttl

sendln 'cmd'
wait '[vxWorks]#'
sendln 'ftp x.x.x.x'
wait UsernamePrompt

(xxxx это мой ip)

но результат

Ошибка открытия: (подключение: errno = 0x3e)

когда я ввел вручную ftp xxxx в терминале teraterm, он работает хорошо.

но при использовании макроса всегда печатается Open fail

я неправильно использую макрос?


Решенная проблема… Устройство нехорошее, поэтому мне нужно подождать секунды. Добавляю паузу 3, работает хорошо.

2019-12-01 06:14

Понравилась статья? Поделить с друзьями:

Не пропустите эти материалы по теме:

  • Яндекс еда ошибка привязки карты
  • Ошибка отношение users не существует
  • Ошибка открытия файла документа t flex
  • Ошибка относительно объекта посягательства пример
  • Ошибка открытия файла для чтения xls 1с

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии