![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Гость_Игорь_* |
![]()
Сообщение
#1
|
Гости ![]() |
Здравствуйте!
Подскажите как работать с командной строкой? Я знаю что можно послать в командную строку команду, используя QProcess / system() , но проблема в том, что в нем нельзя послать сразу несколько команд. Т.е. если выполнять так: system(dir); system("pause"); то запустится командная строка, покажет содержимое в директории, потом закроется, запуститься новое и выполниться остановка. Как выполнить все команды в одном окне? Как получать то, что выводит командная строка? |
|
|
maint |
![]()
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте! Подскажите как работать с командной строкой? Я знаю что можно послать в командную строку команду, используя QProcess / system() , но проблема в том, что в нем нельзя послать сразу несколько команд. Т.е. если выполнять так: system(dir); system("pause"); то запустится командная строка, покажет содержимое в директории, потом закроется, запуститься новое и выполниться остановка. Как выполнить все команды в одном окне? Как получать то, что выводит командная строка? очень интересный вопрос. Только в какой системе выполнять надо ? Нет винды под рукой, но в линухе можно сделать так
думаю, что под виндой то же самое или похожее. read в конце, это типа пауза ![]() Опять же, получение чего выводит командная строка. В линухе закрываешь stdout и stderr и открываешь либо файл, либо pipe. Дескриптор 1 и 2. Оттуда и берешь. В винде надо пробовать, смотреть. Но по моему несколько лет назад я делал то же под 2000 виндой на борланде и прокатило Сообщение отредактировал maint - 29.10.2010, 20:46 |
|
|
Алексей1153 |
![]()
Сообщение
#3
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
а так если
system("dir\r\npause"); |
|
|
Гость_Игорь_* |
![]()
Сообщение
#4
|
Гости ![]() |
Я пробую на windows(е)
Вариант "system("dir\r\npause");" никак не срабатывает. Только первая команда работает |
|
|
Гость_Игорь_* |
![]()
Сообщение
#5
|
Гости ![]() |
system("dir;who;ls;read"); тоже не работает
|
|
|
BRE |
![]()
Сообщение
#6
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#7
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
BRE, класс ))
system("dir&&pause"); - это тоже работает |
|
|
Гость_Игорь_* |
![]()
Сообщение
#8
|
Гости ![]() |
system("dir&&who&&ls&&read"); Сработало,но и сразу же наткнулся на следующую проблему, а как отвечать на запросы?
То есть если в командной строке надо ввести какое-то имя файла или ответить Y или N, то как и это выполнить программно? |
|
|
Алексей1153 |
![]()
Сообщение
#9
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Игорь, ты уж определись, тебе надо одну команду выполнить или консоль открыть и там работать
|
|
|
Гость_Игорь_* |
![]()
Сообщение
#10
|
Гости ![]() |
Мне надо выполнить несколько операций без вмешательств пользователя и получить в переменную что выводит консоль
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 22.5.2025, 2:11 |