如何从Delphi运行命令行?

时间:2010-07-31 16:19:34

标签: delphi

如何从我的Delphi应用程序运行此命令?

  

C:\ myapppath \ appfolder> appname.exe / stext save.txt

我尝试了以下代码:

ShellExecute(0, nil, 'cmd.exe', 'cd C:\myapppath\appfolder', nil, SW_Hide);
ShellExecute(0, nil, 'cmd.exe', 'appname.exe /stext save.txt', nil, SW_Hide);

但它没有用。任何人都可以提供解决方案吗?

1 个答案:

答案 0 :(得分:7)

要运行CMD命令,您需要使用/C的{​​{1}}标志:

cmd.exe

然而,这将创建两个不同的会话,因此它将无法工作。但您可以使用ShellExecute直接运行ShellExecute(0, nil, 'cmd.exe', '/C cd C:\myapppath\appfolder', nil, SW_HIDE); ShellExecute(0, nil, 'cmd.exe', '/C appname.exe /stext save.txt', nil, SW_HIDE); ,如下所示:

appname.exe

但您需要正确指定文件名。

我愿意

ShellExecute(0, nil, 'appname.exe',  '/stext save.txt', nil, SW_HIDE);

如果var path: string; begin path := ExtractFilePath(Application.ExeName); ShellExecute(0, nil, PChar(Application.ExeName), PChar('/stext "' + path + 'save.txt"'), nil, SW_HIDE); end; 是当前的应用程序。否则,请使用appname.exe的完整路径替换Application.ExeName