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