要运行 CMD 命令,您需要使用/C
的旗帜cmd.exe
:
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;
in case appname.exe
是当前的应用程序。否则,更换Application.ExeName
的完整路径appname.exe
.