如何从Delphi运行命令行?
问题描述:
如何从我的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);
但没有奏效。谁能提供解决方案?
答
要运行CMD命令,你需要使用的cmd.exe
的/C
标志:
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);
然而,这将创建两个不同的会话,因此它不会工作。但是你可以使用的ShellExecute来直接运行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
替换为appname.exe
的完整路径。
WS_HIDE应该是SW_HIDE。我试图编辑它,但收到消息:编辑必须至少有6个字符... – Zalumon 2013-06-24 09:40:05