Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Как сделать вывод отработки внешнего приложения во внешний текстовый файл? Скажем, запустить curl.exe и получить результат в файл myip.txt Вот это работает. Что не так?
Добавлено (18 Октября 2022, 10:05) --------------------------------------------- Ооопс... а свой пост отредактировать невозможно?!
Ну для начала наверно нужно почитать, как работает то или иное приложение. Именно по этому например можно почитать здесь. Прокручиваем до "Загрузка файлов" и видим что команда выглядит примерно так
Почитай, нет желания расписывать все то что там написано.
А чем тебя не устраивают родные команды с вкладки Интернет? Ну это если тебя интересует именно эта утилита.
Добавлено (18 Октября 2022, 12:58) --------------------------------------------- Вообще с консольными утилитами лучше работать с плагином dmCMDLine . С помощью него можно отслеживать выполнение команды приложения.
Так в том и вопрос как обойтись без создания батника?
Ни как. Попробуй в батнике прописать полный путь к файлу. Тоже файл myip.txt не будет сохранен. Программа не понимает полный путь. Это можно увидеть если использовать выше упомянутый плагин. Но если хочется использовать батник, обойти можно примерно так:
Некоторые консольные приложения поддерживают полный путь и сохраняют файл, некоторые, как в данном случае, не поддерживают и не сохраняют. Все это узнавать приходится методом тыка.
Цитатаleopold ()
У него вроде ограничение в 4кб на размер?
По поводу ограничений не знаю, у Дембеля нужно спрашивать, но вытягивает он практически всю информацию которую выдает консоль. Это в прилагаемой демке все реализовано.
Цитатаleopold ()
Что заставляет в некоторых случаях отказаться.
Предполагаю что в этих случаях так же можно обойтись штатными командами, просто нужно понять или разобраться в поставленной задаче. Не хочешь читать хелп?
Можно ещё плагином alConsole воспользоваться. Удобная штука. Хотя мне тоже не понятно, зачем городить программу ради вывода в файл, когда есть штатные средства. Или надо обрабатывать?
mishem Спасибо за подсказки по InternetGet. Вариант с созданием и затиранием батника сам додумал, но именно от него и хотел отказаться с целью упрощения.
mkg По поводу alConsole - пробовал, но реальная задачка такова: нужно получить на выходе каталог файлов из облачного хранилища в несколько тысяч строк. Плагин с таким объемом не справляется. Кроме того у него проблемы с кодировкой вывода. Штатная переключалка кодировки в нем не решает проблемы. Поэтому решено выводить во внешний .txt
А сама утилита справляется? Не помню как alConsole, плагин хороший, но по какой то причине я остановился на dmCMDLine. dmCMDLine, на сколько я помню, справлялся со всеми поставленными мной задачами. Все то что отображает консоль, этот плагин возвращает. Могу предположить, что возможно будет не достаточно памяти. Но думаю эту проблему можно тоже обойти, очищая память и записывая из переменной данные в файл. Для таких манипуляций у него предусмотренны подпрограммы.
Цитатаmishem ()
Программа не понимает полный путь.
Я думаю если указать URL адрес, возможно файл будет сохраняться, так как когда указываешь путь к диску, программа выдает ошибку, что URL адрес не существует или не верно указан.
Но опять же, повторюсь, бегло прочитав описание вышеупомянутой программы, у меня сразу возникла мысль, чем не устраивают штатные команды? Все что делает эта прграмма, отправляет запрс и получает ответ. Все это может делать НБ без подключения сторонних приложений.
Если не знаешь как и куда она отправляет запрос, можешь воспользоваться например программой HTTP.Analyzer. Там сможешь увидеть и метод запроса и строку запроса. Не хочешь читать хелп?
curl в контексте данной задачи был взят для получения текущего айпишника машины, не более. Для справочной инфы. Для получения содержимого каталога с облака Меги выбрана специальная утилита megatools Вот с нее не работает вывод инфы >list.txt из NB. А из батника работает. От батника хотелось бы избавиться.
leopold, я тебе все таки рекомендовал бы разобраться с плагином dmCMDLine. Вообще на сколько я понимаю, у Меги уже есть готовая программа для компьютера.
Цитатаleopold ()
От батника хотелось бы избавиться.
У меня нет желания разбираться с этой программой. Там есть какойто файл конфигурации. Возможно в нем можно прописать путь для вывода в файл?
Выяснилось, что ipinfo.io/ip и ifconfig.me/ip при частом заходе банят по айпишнику. Что делает регулярное к ним обращение непрактичным. Есть затея поднять свой сайтик для этих целей. Вот только какой код прописать в index.php ? Пробовал вот такой,
Код
<?php echo ''.$_SERVER['REMOTE_ADDR']; ?>
в браузере айпи показывает, но в InternetGet не отдает, говорит, что мол файл не найден и параметр задан неверно.
Добавлено (24 Октября 2022, 10:58) --------------------------------------------- Вадим, спасибо за наводку, но в External_IP так же используются интернет ресурсы, которые потенциально ненадежны в плане стабильности использования.
в браузере айпи показывает, но в InternetGet не отдает, говорит, что мол файл не найден и параметр задан неверно.
Должно работать. Когда то была программа, которая проверяла версию, обращаясь к php файлу. Вот примерно такой код был:
Код
.Отсылаем запрос на сервер InternetGet "[Domen]provprog.php?key=1203&mess=0123456789" "[Result]" "HideProgress+Async"
В пхп файле проверялись присланный номер версии и сообщение, и через echo отдавался результа.
Может путь не верный пишите? Попробуйте в пхп просто текст отдать типа echo "123" или текстовый файл получить. В вашем пхп в строке echo ''.$_SERVER['REMOTE_ADDR']; зачем эти смволы ''. ? Достаточно: echo $_SERVER['REMOTE_ADDR'];
Добавлено (28 Октября 2022, 15:03) --------------------------------------------- Попытался попасть на сайты http://icanhazip.com/ и http://icanhazip.com/, у меня их антивирусник блокирует. На этот сайт https://www.whatismyip.org/ попал, вверху показывает мой ип, можно страницу распарсить и получить его в строку программы.