aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 20584|回复: 5

请问如何获取 process.execute 执行DOS命令获取返回内容的问题

[复制链接]

1

主题

1

回帖

12

积分

新手入门

积分
12
发表于 2015-6-11 23:04:07 | 显示全部楼层 |阅读模式
通过 process.execute 成功运行CMD 添加参数,实现执行PHP CGI,却找不到有相关的函数获取该DOS窗口返回的内容。希望借返回内容判断是否运动成功。请教各位有什么方法获取CMD返回内容?

还有个问题,想在按钮文本上显示 & 字符,请问如何实现?


  1. import win.ui;
  2. import process;
  3. import fsys;
  4. import fsys.dlg;
  5. /*DSG{{*/
  6. mainForm = ..win.form(text="aardio Form";right=524;bottom=397)
  7. mainForm.add(
  8. button={cls="button";text='Start PHP FastCGI Nginx';left=384;top=10;right=514;bottom=68;z=2};
  9. button2={cls="button";text="Stop PHP FastCGI";left=384;top=91;right=514;bottom=125;z=3};
  10. cgista={cls="static";text="PHP CGI 路径";left=8;top=344;right=82;bottom=362;transparent=1;z=6};
  11. log={cls="edit";left=7;top=9;right=377;bottom=329;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;vscroll=1;z=1};
  12. nbinxsta={cls="static";text="Nginx 路径";left=8;top=372;right=82;bottom=390;transparent=1;z=9};
  13. nginxpath={cls="edit";text="F:\Service\Nginx-1.9.1";left=85;top=368;right=311;bottom=390;edge=1;multiline=1;z=7};
  14. phpfcgipath={cls="edit";text="F:\Service\PHP-5.6.9-nts-VC11-x86";left=85;top=340;right=311;bottom=362;edge=1;multiline=1;z=4};
  15. selectcgi={cls="button";text="浏览..";left=316;top=339;right=377;bottom=362;z=5};
  16. selectnginx={cls="button";text="浏览..";left=316;top=367;right=377;bottom=390;z=8}
  17. )
  18. /*}}*/

  19. mainForm.selectnginx.oncommand = function(id,event){
  20.         //var dir = fsys.dlg.open("Nginx|nginx.exe|");
  21.         var dir = fsys.dlg.opendir();
  22.         mainForm.nginxpath.text = dir + "";
  23.        
  24. }
  25. mainForm.selectcgi.oncommand = function(id,event){
  26.         //mainForm.msgbox( mainForm.selectcgi.text );
  27.         var dir = fsys.dlg.opendir();
  28.         mainForm.phpfcgipath.text = dir + "";
  29. }
  30. var fcgi,nginx = process();

  31. mainForm.button.oncommand = function(id,event)
  32. {
  33. ;
  34.         // 启动PHP CGI
  35.         fcgi = process.execute("cmd.exe",'/c ' + mainForm.phpfcgipath.text + 'php-cgi.exe -b 127.0.0.1:9000 -c ' + mainForm.phpfcgipath.text + 'php.ini',,0x0/*_SW_HIDE*/);
  36.         //mainForm.msgbox( tostring(fcgi) );
  37.         mainForm.msgbox( fsys.ge );
  38. }

  39. mainForm.button2.oncommand = function(id,event){
  40.         process.kill("php-cgi.exe");
  41.         mainForm.msgbox( '&'# )
  42. }

  43. mainForm.show()
  44. return win.loopMessage();

复制代码

3

主题

13

回帖

131

积分

一级会员

积分
131
发表于 2015-6-11 23:31:27 | 显示全部楼层
按钮文本显示 & 键入 && 就行了,至于第一个问题,论坛搜索管道即可。

1

主题

1

回帖

12

积分

新手入门

积分
12
 楼主| 发表于 2015-6-12 01:01:58 | 显示全部楼层
五月风 发表于 2015-6-11 23:31
按钮文本显示 & 键入 && 就行了,至于第一个问题,论坛搜索管道即可。

可是 process.popen 执行 cmd.exe /c **** 不能隐藏,DOS窗口还是一闪而过。

9

主题

443

回帖

2546

积分

版主

积分
2546
发表于 2015-6-12 07:56:16 | 显示全部楼层
ChristopheLee 发表于 2015-6-12 01:01
可是 process.popen 执行 cmd.exe /c **** 不能隐藏,DOS窗口还是一闪而过。
这些东西在aardio自带的范例里都有,
执行程序不是都一定要通过 cmd.exe /c 调用,这都是些基础常识。

例如php-cgi.exe这样写就可以,参数说明里写的很清楚:

  1. var prcs = process.popen("php-cgi.exe","其他参数")
复制代码
其实不用别人告诉你自己也可以这样尝试一下吧?

至于php-cgi.exe的用法,这就需要你自己去研究PHP的文档了,
当然如果你不介意做回伸手党直接拿现成的,可以论坛搜索帖子: 在aardio中使用 CGI 方式运行 php 实例

我还是建议你不要看上面的帖子,这么简单的东西:自己解决。

2

主题

9

回帖

86

积分

一级会员

积分
86
发表于 2015-7-24 11:09:57 | 显示全部楼层
runCmd = function(arg){
        ..console.log("RUN:",arg)
        ..process.execute_wait("cmd.exe","/c " ++ arg,,0)
}

隐藏窗口执行命令行"arg",怎么取得DOS窗口返回的内容,我也不会

0

主题

2

回帖

10

积分

新手入门

积分
10
发表于 2017-12-28 17:52:20 | 显示全部楼层
·······················
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2024-12-13 08:22 , Processed in 0.056310 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表