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-xe5-开发 android uri简介

Delphi 一个高效的正整数排序函数

Delphi 极速字符串替换函数

Delphi winapi: flashwindow - 闪烁窗口

incsecond:将一个tdatetime变量加减一定数量的秒数

Delphi10.3读取json数组

idhttp使用时内存猛增,如何解决

Delphi 运行带参数的程序等待其并获取结果

Delphi httpget 判断链接是否可以访问

Delphi date 返回当前的日期

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



打赏

取消

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

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

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

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

评论

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