如何从我的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);
但它没有用。任何人都可以提供解决方案吗?
答案 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
。