Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Запуск CMD / 19 сообщений из 19, страница 1 из 1
14.10.2019, 12:59
    #39875937
suzuki-bandit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
Добрый деньЕсть строка запуска
Код: pascal
1.
"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"



Которую я генерируют
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
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???
Спасибо
...
Рейтинг: 0 / 0
14.10.2019, 13:01
    #39875938
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
suzuki-banditКак запустить данную с троку в CMD , что б результат выполнения отображался в memo???

CreateProcess()
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.10.2019, 13:10
    #39875944
suzuki-bandit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
Dimitry Sibiryakov,
А как отобразить результат в memo????
...
Рейтинг: 0 / 0
14.10.2019, 13:11
    #39875945
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
function Win32ExecAndWait(const CommandLine, Directory:
string; out OutputString: string): integer;
var
  SA: TSecurityAttributes;
  SI: TStartupInfo;
  PI: TProcessInformation;
  StdOutPipeRead, StdOutPipeWrite: THandle;
  WasOK: Boolean;
  Buffer: array[0..255] of AnsiChar;
  PDirectory: PChar;
  BytesRead: Cardinal;
begin
  Result := -1;
  OutputString := '';
  if Directory = '' then
    PDirectory := nil
  else
    PDirectory := PChar(Directory);

  FillChar(SA, SizeOf(SA), 0);
  FillChar(SI, SizeOf(SI), 0);

  with SA do
    begin
      nLength := SizeOf(SA);
      bInheritHandle := True;
      lpSecurityDescriptor := nil;
    end;
  CreatePipe(StdOutPipeRead, StdOutPipeWrite, @SA, 0);
  try
    with SI do
      begin
        cb := SizeOf(SI);
        dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
        wShowWindow := SW_HIDE;
        hStdInput := GetStdHandle(STD_INPUT_HANDLE); // don't redirect stdin
        hStdOutput := StdOutPipeWrite;
        hStdError := StdOutPipeWrite;
      end;
    if not CreateProcess(nil, PChar('cmd.exe /C ' + CommandLine),
      nil, nil, True, 0, nil, PDirectory, SI, PI) then
      Result := -1
    else
      begin
        CloseHandle(StdOutPipeWrite);
        try
          repeat
            WasOK := ReadFile(StdOutPipeRead, Buffer, 255, BytesRead, nil);
            if BytesRead > 0 then
              begin
                Buffer[BytesRead] := #0;
                OutputString := OutputString + Buffer;
              end;
          until not WasOK or (BytesRead = 0);
          WaitForSingleObject(PI.hProcess, INFINITE);
          GetExitCodeProcess(PI.hProcess, Cardinal(Result));
        finally
          CloseHandle(PI.hThread);
          CloseHandle(PI.hProcess);
        end;
      end;
  finally
    CloseHandle(StdOutPipeRead);
  end;
end;


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.10.2019, 13:15
    #39875948
suzuki-bandit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
Мимопроходящий,
а использовать данную функцию как?
...
Рейтинг: 0 / 0
14.10.2019, 13:16
    #39875950
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
suzuki-banditа использовать данную функцию как?

Разобрать на запчасти, прочесть в справке что и как делает каждая функция, намотать на ус.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.10.2019, 13:36
    #39875957
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
14.10.2019 13:15, suzuki-bandit пишет:
> а использовать данную функцию как?

ой-йоооо...
имхо, тут программист нужен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.10.2019, 10:33
    #39876396
suzuki-bandit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
Что не так делаю??

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
[quote автор]
var
start:string;
RC: Cardinal;
 WorkDir :String;   

   WorkDir := ExtractFilePath(Application.ExeName);
   Memo1.Lines.Text := GetDosOutput( 'cmd /c '+start, WorkDir, Rc );
   ShowMessage( ' Отладка: Код результата = '+IntToStr(R[/quote]
...
Рейтинг: 0 / 0
15.10.2019, 10:38
    #39876402
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
suzuki-banditЧто не так делаю??
Как минимум кавычки забыты в командной строке у длинного пути.
...
Рейтинг: 0 / 0
15.10.2019, 10:51
    #39876412
suzuki-bandit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
wadman,

Подскажите как правильно расставить ковычки???
...
Рейтинг: 0 / 0
15.10.2019, 11:07
    #39876424
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
Мимопроходящий,

С кириллицей работать не будет.
...
Рейтинг: 0 / 0
15.10.2019, 11:26
    #39876447
suzuki-bandit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
Если пишу просто
Код: pascal
1.
   mycommand := '"C:\Program Files (x86)\pgAdmin III\1.16\pg_dump.exe" '; 


ТО пишет норм
Как только добавляю параметры
Код: pascal
1.
  mycommand := '"C:\Program Files (x86)\pgAdmin III\1.16\pg_dump.exe" --host ""192.168.15.52"" --port 5432'; 


Все не идет
Вероятно где то не верно расставленны ковычки
Подскажите пожалуйста где
...
Рейтинг: 0 / 0
15.10.2019, 11:36
    #39876458
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
без прогрОммиЗда не взлетит...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.10.2019, 11:38
    #39876459
suzuki-bandit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
Так я для этого и обратился на форум
чтоб помогли
...
Рейтинг: 0 / 0
15.10.2019, 11:40
    #39876460
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
15.10.2019 11:38, suzuki-bandit пишет:
>
> Так я для этого и обратился на форум
> чтоб помогли

не-а.
тебе не помощник нужен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.10.2019, 11:41
    #39876463
suzuki-bandit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
Спасибо за помощь Умники
Сам разберусь
...
Рейтинг: 0 / 0
15.10.2019, 12:02
    #39876483
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
Ошибка в самой команде -- там же написано, что пытается подключиться к localhost, тогда как в команде адрес сервера указан в виде айпишника. Очевидно, что сама команда с адресом задана неверно. Судя по документации нужно:
- либо: -h xxx.xxx.xxx.xxx
- либо: --host=xxx.xxx.xxx.xxx
...
Рейтинг: 0 / 0
15.10.2019, 12:09
    #39876486
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
suzuki-bandit,

насколько я помню, для винды кавычки нужны только там, где есть пробелы и только для filepath
...
Рейтинг: 0 / 0
15.10.2019, 13:31
    #39876561
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск CMD
Докдля винды кавычки нужны только там, где есть пробелы и только для filepath

Да нет, это сугубо всё равно. Но пересказывать тут целую лекцию о синтаксисе командной
строки лично мне лень. Так что пусть ТС таки разбирается сам.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Запуск CMD / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]