Delphi:如何在cmd命令中指定变量作为参数

Delphi:如何在cmd命令中指定变量作为参数,delphi,variables,cmd,parameters,command,Delphi,Variables,Cmd,Parameters,Command,而不是将数字作为参数传递。我想为IP地址传递一个变量。我该怎么做? 我已经试过+运算符,但它不起作用 ShellExecute( Application.handle, 'open', 'cmd.exe', PChar('/c "mysqldump -h 192.168.100.1 -uroot database table > C:/Users/user1/Desktop/export.sql"'), nil, SW_show )

而不是将数字作为参数传递。我想为IP地址传递一个变量。我该怎么做? 我已经试过+运算符,但它不起作用

ShellExecute(
    Application.handle, 
    'open', 
    'cmd.exe', 
    PChar('/c "mysqldump -h 192.168.100.1 -uroot database table > C:/Users/user1/Desktop/export.sql"'), 
    nil, 
    SW_show
);

如果我正确理解了您的问题,那么您正在寻找使用变量组合命令字符串的方法。 您可以通过多种方式实现,这是一种(使用函数):


+
运算符肯定适用于字符串连接。如果使用CreateProcess更有意义,那么用于作业的正确工具“it't not worked”不是一个有用的问题描述。你肯定能做得更好吗?@coder007:好的,让我们知道,如果有帮助的话,我已经在PChar中设置了一个字符串。但它仍然不起作用。ShellExecute(Application.handle,'open','cmd.exe',PChar(字符串),nil,SW_show)@coder007请编辑您的问题,以包含不适用于您的代码。你是如何建立你传递的
字符串的?
“它仍然不起作用”的唯一答案是“适合那些不起作用的”。
var
  IPAddress : string;
begin
  IPAddress := '192.168.100.1';

  ShellExecute(
    Application.Handle,
    'open',
    'cmd.exe',
    PChar(Format('/c "mysqldump -h %s -uroot database table > C:/Users/user1/Desktop/export.sql"', [IPAddress])),
    nil,
    SW_SHOW
  );
end;