Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2012, 21:26   #1
Darkseed3000
Пользователь
 
Регистрация: 06.11.2012
Сообщений: 10
По умолчанию Связь через командную строку

Здравствуйте мастера!

Помогите решить мою задачу. Работаю с контроллером на котором установлена *nix система. Доступ к файловой системе происходит по протоколу scp утилитой WinSCP.com через командную строку. У пользователя root пароль отсутствует, то бишь пустой. Нужно послать команду на считывание архивного файла с контроллера, в одной строке, то есть одной командой считать файл не могу. При посылке команды я посылаю и пароль, но контроллер не понимает пустой пароль и требует повторно пароль. Так вот как можно с помощью delphi управлять командной строкой, то есть сперва послать команду, а потом после получения запроса на пароль, послать пароль и все это в автономном режиме (без участия человека)?

Есть вариант изменить пустое значение пароля на какое либо другое, но не могу отыскать файл с паролем или связаться с ядром.
Darkseed3000 вне форума Ответить с цитированием
Старый 06.11.2012, 21:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
через командную строку
Тоесть? Как в телнете - программа сама по себе принимает команды из консоли, или ты из CMD запускаешь WinSCP, передавая ей параметры при каждом запуске?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2012, 21:52   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...также как и в любом другом, через StdOutPipeRead, StdOutPipeWrite http://msdn.microsoft.com/ru-ru/libr...(v=vs.85).aspx, http://msdn.microsoft.com/ru-ru/libr...(v=vs.85).aspx.

Delphi-World, там пример работы с консолью. У вас пример самой команды есть и что за контроллер ? Приведите, покажу как.

Цитата:
WinSCP, передавая ей параметры при каждом запуске
в консольном режиме, далее он сам закачивает-скачивает.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 07.11.2012, 06:07   #4
Darkseed3000
Пользователь
 
Регистрация: 06.11.2012
Сообщений: 10
По умолчанию

Связь необходима с ПЛК304.

Команда консоли:
C:\users\sergey\desktop\winscp\wins cp.com /console /command "open root:12345@10.0.6.10" "get file.txt d:\" "exit"
Где C:\users\sergey\desktop\winscp\wins cp.com - путь до програмы
/console - запуск консоли
/command - посылка команды
"open root:12345@10.0.6.10" - команда на связь с плк по логину, паролю и хосту
"get file.txt d:\" - получение файла и сохранение его в директорию d:
"exit" - сброс соединения

В части root:12345 - указан логин и пароль через двоеточие, но это лишь пример, у пользователя root пароля нет, он пустой и утилита не понимает команду из за пустого пароля, а требует ввести пароль, то есть приходиться дважды обращаться к консоли.
Darkseed3000 вне форума Ответить с цитированием
Старый 07.11.2012, 11:39   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Кажись понял. Попробуй такое
Код:
@echo off
(
    echo open root:@10.0.6.10
    echo 12345
    echo get file.txt d:\
    echo exit
) 1>do.txt
wins cp.com /console /command << do.txt
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.11.2012, 12:00   #6
Darkseed3000
Пользователь
 
Регистрация: 06.11.2012
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Кажись понял. Попробуй такое
Код:
@echo off
(
    echo open root:@10.0.6.10
    echo 12345
    echo get file.txt d:\
    echo exit
) 1>do.txt
wins cp.com /console /command << do.txt
А это разве delphi синтаксис? Очень на php похож.

Дело в том что пароля нет, там пустое значение, а команду с пустым значением утилита не понимает.

То есть я должен послать: C:\users\sergey\desktop\winscp\wins cp.com /console /command "open root:@10.0.6.10" "get file.txt d:\" "exit", но командная строка требует послать пароль, а нужно послать без запроса от командной строки. Пробовал так: C:\users\sergey\desktop\winscp\wins cp.com /console /command "open root:"''"@10.0.6.10" "get file.txt d:\" "exit", она меня не поняла.

Или же что бы сама delphi программа на запрос пароля от командной строки отослала этот пароль, то есть пустое значение.
Darkseed3000 вне форума Ответить с цитированием
Старый 07.11.2012, 12:12   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Это батник. Кстати, хорошая альтернатива, которую при огромном желании можно запускать и из дельфей, будет своего рода гибкий макрос
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 07.11.2012, 12:46   #8
Darkseed3000
Пользователь
 
Регистрация: 06.11.2012
Сообщений: 10
По умолчанию

Так он не соединяется, сперва жалуется на "<< do.txt", удалил, проверил, теперь жалуется на "winscp.com". Прописал полный путь до программы, в итоге не на что не жалуется, просто выполняет все действия и закрывается при это связь с ПЛК не устанавливает и файл не качает.

Копался на форумах линуксойдов, нашел файл с паролями на пользователей, вот теперь думаю смогу ли я подсоединиться к ПЛК, если хэш пароля второго пользователя(который не пустой) присвою к руту или я тупо убью единственную возможность доступа к файлам?
Darkseed3000 вне форума Ответить с цитированием
Старый 07.11.2012, 12:56   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
и файл не качает
Цитата:
сперва жалуется на "<< do.txt", удалил
cтранно, да?

Цитата:
при это связь с ПЛК не устанавливает
так скорректируйте с учетом пустого пароля.

Цитата:
присвою к руту или я тупо убью единственную возможность доступа к файлам?
сие кстати лучше спросить у OWEN-разработчиков.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 07.11.2012, 13:01   #10
Darkseed3000
Пользователь
 
Регистрация: 06.11.2012
Сообщений: 10
По умолчанию

Цитата:
cтранно, да?
не знаю странно или нет, не разу не создавал батники, первый опыт.
Цитата:
так скорректируйте с учетом пустого пароля.
корректировал результат аналогичный
Цитата:
сие кстати лучше спросить у OWEN-разработчиков.
устал уже с ними общаться, такое впечатление что не они свои железки разрабатывали, да и ответа от них неделями ждать приходиться, а проект весит и вскоре его запускать надо будет
Darkseed3000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регистрация com-объекта через командную строку Riota Компоненты Delphi 11 19.07.2012 12:37
Как через командную строку (Windows XP) открыть файл в программе WordPad? ivan.tiran Windows 1 13.11.2011 15:06
Через командную строку передать два слова и целое число N. gas777 Общие вопросы C/C++ 5 23.06.2011 19:59
Отправка почты из Excel через командную строку zao Microsoft Office Excel 3 06.08.2010 12:10
Передача хэндла через командную строку MaTBeu Win Api 9 29.11.2008 15:30