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 hextoint32

Delphi 判断文件是否被使用

Delphi extctrls.frame3d

Delphi hash类

Delphi 怎样判断spinedit在微调时值是增加还是减少了

Delphi makeuniquefilename 创建文件名如果已经存在自动更改文件名

Delphi 语法基础: 使用不同的数据类型标记数组

Delphi 打开android应用信息

Delphi dbgrid查询内容的导出为txt函数

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



打赏

取消

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

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

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

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

评论

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