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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2019, 12:44   #1
gribo4ek
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию Запуск CMD

Добрый деньЕсть строка запуска
Код:
"C:\Program Files (x86)\pgAdmin III\1.16\\pg_dump.exe" --host "192.168.15.50"  --port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --section pre-data --section data --section post-data --encoding UTF8 --verbose --file "D:\old.backup" "gilev"
pause
Которую я генерируют
Код:
Var
Checket:integer;
begin
ini_file := TIniFile.Create('config.ini');
StatusBar1.Panels[1].Text:=((ExtractFilePath(Application.ExeName) + 'config.ini'));
try
host.Text:= ini_file.ReadString('conf', 'host','127.0.0.1');
port.Text:= ini_file.ReadString('conf', 'port','5432');
username.Text:= ini_file.ReadString('conf', 'username','5432');
role.Text:= ini_file.ReadString('conf', '=role','postgres');
BD.Text:= ini_file.ReadString('conf', 'BD','Base');
SaveToFile.Text:= ini_file.ReadString('conf', 'file','C:\')+BD.Text+'_'+FormatDateTime('dd.mm.yyyy', Now)+'.backup';
Checket:=StrToInt(ini_file.ReadString('conf', 'Select','0'));
finally
ini_file.Free
end;
If Checket = 0  then
begin
CheckBox1.Checked:=false;
Button1.Enabled:=true;
end
else
begin
CheckBox1.Checked:=true;
Button1.Enabled:=false;
end
Как запустить данную с троку в CMD , что б результат выполнения отображался в memo???
Спасибо
Изображения
Тип файла: jpg 1.JPG (46.8 Кб, 56 просмотров)
gribo4ek вне форума Ответить с цитированием
Старый 14.10.2019, 13:36   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а это точно нужно?
может быть, достаточно ShellExecute ?

ну,если вывод нужно получить и именно в мемо, попробуйте поискать функцию GetDosOutput.
например, тыц
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.10.2019, 14:04   #3
gribo4ek
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а это точно нужно?
может быть, достаточно ShellExecute ?

ну,если вывод нужно получить и именно в мемо, попробуйте поискать функцию GetDosOutput.
например, тыц
Ошибку вываливает
пишу так
Код:
 Memo1.Lines.Text := GetDosOutput( 'cmd.exe ' + start, '', Rc );
Изображения
Тип файла: jpg 1.JPG (76.1 Кб, 47 просмотров)
gribo4ek вне форума Ответить с цитированием
Старый 14.10.2019, 14:06   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Вы думаете "/C" это смайлик там стоял такой?
p51x вне форума Ответить с цитированием
Старый 14.10.2019, 14:23   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

и к замечанию p51x ещё добавлю:

Цитата:
Сообщение от gribo4ek Посмотреть сообщение
Код:
Memo1.Lines.Text := GetDosOutput( 'cmd.exe ' + start, '', Rc );
вторым параметром нужно ОБЯЗАТЕЛЬНО указать рабочую папку.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.10.2019, 05:57   #6
gribo4ek
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию

Напишите пожалуйста как должна выгладить строка???
gribo4ek вне форума Ответить с цитированием
Старый 15.10.2019, 09:24   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

попробуйте так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  RC: Cardinal;
  WorkDir :String;
begin
  WorkDir := ExtractFilePath(Application.ExeName);
  Memo1.Lines.Text := GetDosOutput( 'cmd /c '+start, WorkDir, Rc );
  ShowMessage( ' Отладка: Код результата = '+IntToStr(Rc));
end;
p.s. возможно, что двойные кавычки в строке придётся ещё удвоить..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.10.2019, 10:32   #8
gribo4ek
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
попробуйте так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  RC: Cardinal;
  WorkDir :String;
begin
  WorkDir := ExtractFilePath(Application.ExeName);
  Memo1.Lines.Text := GetDosOutput( 'cmd /c '+start, WorkDir, Rc );
  ShowMessage( ' Отладка: Код результата = '+IntToStr(Rc));
end;
p.s. возможно, что двойные кавычки в строке придётся ещё удвоить..
Выдало вот так
Изображения
Тип файла: jpg 1111.JPG (41.8 Кб, 21 просмотров)
gribo4ek вне форума Ответить с цитированием
Старый 15.10.2019, 10:37   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

так попробуйте:


Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  RC: Cardinal;
  mycommand, WorkDir :String;
begin
   mycommand := '""C:\Program Files (x86)\pgAdmin III\1.16\pg_dump.exe"" --host "192.168.15.50"  '+
      '--port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --section pre-data '+
      '--section data --section post-data --encoding UTF8 --verbose --file "D:\old.backup" "gilev"';
  WorkDir := ExtractFilePath(Application.ExeName);
  Memo1.Lines.Text := GetDosOutput( 'cmd /c '+mycommand, WorkDir, Rc );
  ShowMessage( ' Отладка: Код результата = '+IntToStr(Rc));
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.10.2019, 10:45   #10
gribo4ek
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию

Тоже самое
Может дело в кодировке??
Изображения
Тип файла: jpg 111.JPG (44.8 Кб, 20 просмотров)
gribo4ek вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск jar revanatar Общие вопросы по Java, Java SE, Kotlin 4 22.10.2011 20:01
Запуск .scr BoT_T Общие вопросы Delphi 2 03.10.2010 21:25
Запуск из res? Virus25 Общие вопросы Delphi 6 17.01.2010 02:51
Запуск exe Betty Общие вопросы Delphi 6 10.07.2009 21:25
Запуск ехе Killbrum Помощь студентам 8 19.08.2008 18:06