delphi 执行CMD并取得返回值


本文整理自网络,侵删。

 delphi 执行CMD并取得返回值

function ExecuteCmds(Cmds: TStrings): String;
const
PRE_FIX = 'CJWTMPFILE';
var
i: Integer;
S,path,tmpFile,batFile: String;
temStrs: TStrings;

procedure waitFile(aFileName: string);
begin
while not FileExists(aFileName) do
begin
Application.ProcessMessages;
Sleep(100);
end;
end;

begin
Result := '';
for i := Cmds.Count - 1 downto 0 do
begin
S := Trim(Cmds);
if s = '' then
begin
Cmds.Delete(i);
Continue;
end;
Cmds := S + ' > ' + PRE_FIX + IntToStr(i) + '.txt';
end;
path := ExtractFilePath(ParamStr(0));
batFile := path + PRE_FIX + '.bat';
Cmds.SaveToFile(batFile);
ShellExecute(0,'open',PChar(batFile),nil,nil,0);
tmpFile := path + PRE_FIX + IntToStr(Cmds.Count - 1) + '.txt';
waitFile(tmpFile);
DeleteFile(batFile);
temStrs := TStringList.Create;
try
for i := 0 to Cmds.Count - 1 do
begin
tmpFile := path + PRE_FIX + IntToStr(i) + '.txt';
temStrs.LoadFromFile(tmpFile);
if Result <> '' then
Result := temStrs.Text
else
Result := Result + #13#10#13#10 +temstrs.Text;
DeleteFile(tmpFile);
end;
finally
temStrs.Free;
end;
end;

相关阅读 >>

Delphi文件捆绑器

Delphi 用sql语句添加删除修改字段

Delphi xe 共享一个之前封装的多进程共享内存的memorystream

Delphi tstringlist utf8编码保存并开启bom

Delphi基于高斯-拉普拉斯算子的图像边缘检测

Delphi中paramstr的用法

Delphi urldownloadtofile 支持进度条

winapi 字符及字符串函数(15): charnext、charprev

Delphi system.masks.matchesmask 简单的正则用法

Delphi 如何打开记事本并显示指定内容

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...