aardio语言:process.popen函数运行的命令不支持管道符:|

2023-10-21 11:06:38 浏览数 (2)

|作为一个管道符号,意思是:将|前面命令的输出作为|后面命令的输入。 例如:netstat -ano | findstr 2000,这条命令会显示只含有2000字符的网络连接。 而使用aardio语言的process.popen()函数执行上面这条命令组合会出错。 解决方法:这个问题没办法解决,只能使用process.popen()函数执行netstat -ano这条命令,读取输出后,再使用aardio语言的字符串处理函数自行筛选结果。

我自己的应用片段:

代码语言:javascript复制
var p=process.popen("netstat -ano")
var r=p.read(-1)
p.close()
var is_connect=string.match(r,"TCP [0-9 .:] 2000[ ] ESTABLISHED[ ] "  game_pid)
if(!is_connect){//失去TCP链接,判断为掉线
    io.print("游戏掉线");
    t_d.game_is_online=false;
    t_d.game_is_online_str="掉线";
}else {
    io.print(is_connect);
    t_d.game_is_online=true;
    t_d.game_is_online_str="在线";
}

0 人点赞