PLM之家PLMHome-工业软件与AI结合践行者

[资料] 【Window】cmd命令行命令并获取命令行的输出内容

[复制链接]

2021-9-2 13:55:07 2369 1

admin 发表于 2019-12-17 08:23:05 |阅读模式

admin 楼主

2019-12-17 08:23:05

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
[mw_shl_code=cpp,true]#include <stdio.h>: T: W  u9 ^# P3 |
#include <stdlib.h>
" w& U9 H% q( H8 ~#include <string.h>
& ]+ C# z8 E% n/ j4 K  d. @
1 g2 E0 P6 x1 U. e 8 Z' |; }& a9 M+ x
int _System(const char * cmd, char *pRetMsg, int msg_len)
: X* [" a& t, {  P: N2 `5 N) W5 K{
6 ~4 \0 y* I! s5 O5 p5 E; I9 L' G        FILE * fp;; T* t: A! z% v8 K
        char * p = NULL;
6 F" z8 J, S# D! t        int res = -1;
* f; `. H$ l4 K/ j* q  ?        if (cmd == NULL || pRetMsg == NULL || msg_len < 0)$ K7 u: \% n, M  t% `
        {
' @# M$ y5 O  K0 w9 D0 F9 p! U4 e9 [                printf("Param Error!\n");
. o  K7 V- t/ i& @5 T                return -1;7 z+ Y$ r: h7 N2 ^& I
        }
6 ?8 y( f$ E. d; e- r        if ((fp = _popen(cmd, "r")) == NULL)3 r- b5 o5 A. I* N' L1 C2 j5 r1 |
        {
9 E' o! D& D' T                printf("Popen Error!\n");
  _2 V. r4 I+ K5 d0 S) `                return -2;
. D/ k5 t6 m& {) l. N4 p' v  @  k        }; ^* v. y9 l& [- v; B* a9 L* f+ G
        else
% W( i- E4 `; M8 x9 ]) J        {8 a8 r2 h$ W/ C0 t7 d* G
                memset(pRetMsg, 0, msg_len);$ K: Y0 e: q9 }  J3 N
                //get lastest result  
- W8 c0 ~7 s9 B! C. O$ r% o$ y; r                while (fgets(pRetMsg, msg_len, fp) != NULL)' f1 ^4 k% I1 p  ?
                {
/ v' R& v8 R1 f, p4 c9 @                        printf("Msg:%s", pRetMsg); //print all info  # Q+ d/ z  X9 e( g3 T
                }
, O. Y  ?) y& V' i. S7 x  b
+ G! ^# p. F3 \4 V) @& z                if ((res = _pclose(fp)) == -1)# |6 {; U7 H& u7 @) H: ~' U! b% o
                {
/ c1 l7 j) S" X. L9 m                        printf("close popenerror!\n");5 w, ?. g% q/ R) X
                        return -3;
! D1 |5 X$ H; U; ^8 L                }
+ j! b0 F2 G7 |- Q2 @9 P, O. m                pRetMsg[strlen(pRetMsg) - 1] = '\0';
+ O$ [# p# M& k1 M                return 0;2 D( D4 F- `4 a
        }1 H( Q! E7 m  t
}
8 r7 c$ \) O" W+ o
3 B& ?/ Z3 K& C; Dint main()3 V: u, @( f, v( I8 M. ]7 g& n7 t
{
; W# `0 ^" S7 f* U+ ]0 x  u7 P        //test cmd  
8 ^# N2 @3 q( [- w5 o& w        char *cmd = "python d:\\PythonProjects\\Demo1.py [1]";
- z# z: t' b$ C4 s0 D        char a8Result[128] = { 0 };5 C$ b: ~/ T% @, N* }8 d
        int ret = 0;
  o  h% I$ Z) v9 }/ K7 }) R        ret = _System(cmd, a8Result, sizeof(a8Result));- L0 P; \- a9 @
        printf("ret = %d \na8Result = %s\nlength = %d \n", ret, a8Result, strlen(a8Result));
# d2 x. v0 I6 x' v# h1 a6 m% X. }  R        geTChar();% E8 J, E( S5 O
        return 0;
* }7 U# g: D2 }# G}
# A9 t/ M$ r* ~- f" U' {[/mw_shl_code]
: z2 M. I7 b- D2 @" G8 ^7 s/ p
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

zwz 发表于 2021-9-2 13:55:07

zwz 沙发

2021-9-2 13:55:07

非常好的帖子 收藏一下以便学习
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了