递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 345|回复: 7
打印 上一主题 下一主题

[服务器] go的命令执行类,有没有方法让他实时显示进度?

[复制链接]

7

主题

241

帖子

3685

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3685
跳转到指定楼层
楼主
发表于 2024-11-2 01:21:44 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在问题是他那个执行的命令,只有执行完命令才会显示,用了好多方法,取那个输出通道也不行,不知道怎么搞,没搞过这个go
回复

使用道具 举报

7

主题

241

帖子

3685

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3685
沙发
 楼主| 发表于 2024-11-2 02:31:05 来自手机 | 只看该作者
不用执行, 用启动命令怎么获取它的输出数据
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40533
板凳
发表于 2024-11-2 08:20:05 | 只看该作者
<火山程序 类型 = "通常" 版本 = 1 />

方法 "111"
{
    变量 命令 <参考 类型 = 命令执行类>
    命令 = 命令执行类.创建 ()
    变量 输出管道 <参考 类型 = 读写关闭接口>
    输出管道 = 命令.取标准输出管道 ()
    命令.执行 ()
    变量 扫描器 <参考 类型 = 缓冲扫描器类>
    扫描器 = 缓冲扫描器类.创建 (输出管道)
    判断循环 (扫描器.扫描 ())
    {
        扫描器.取扫描结果文本()
    }
    命令.等待 ()


}


你试试这个行不行
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

7

主题

241

帖子

3685

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3685
地板
 楼主| 发表于 2024-11-2 09:05:41 来自手机 | 只看该作者
扫描器,我试一下
回复

使用道具 举报

7

主题

241

帖子

3685

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3685
5#
 楼主| 发表于 2024-11-2 09:45:56 来自手机 | 只看该作者
不行啊 我去,什么东西都没有扫描出来,没有扫描出来任何东西
回复

使用道具 举报

7

主题

241

帖子

3685

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3685
6#
 楼主| 发表于 2024-11-2 09:48:24 来自手机 | 只看该作者
<火山程序 类型 = "通常" 版本 = 1 />  方法 启动方法 <公开 类型 = 整数> {     变量 命令 <参考 类型 = 命令执行类>     变量 扫描器 <参考 类型 = 缓冲扫描器类>     变量 输出管道 <参考 类型 = 读关闭接口>       命令 = 命令执行类.创建 ()     输出管道 = 命令.取标准输出管道 ()     变量 错误 <类型 = 错误接口>     错误 = 命令.执行 ()     如果真 (错误 != 空对象)     {         抛出异常 (错误接口.格式新建 ("启动命令失败: %w", 错误))         返回 (1)     }      扫描器 = 缓冲扫描器类.创建 (输出管道)     判断循环 (扫描器.扫描 ())     {         扫描器.取扫描结果文本 ()     }      命令.等待 ()      返回 (1)  }
回复

使用道具 举报

7

主题

241

帖子

3685

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3685
7#
 楼主| 发表于 2024-11-2 09:48:41 来自手机 | 只看该作者
本帖最后由 1325901607 于 2024-11-2 09:50 编辑

无论是执行行还是启动命令都试了不行
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40533
8#
发表于 2024-11-2 10:16:27 | 只看该作者
<火山程序 类型 = "通常" 版本 = 1 />

方法 测试方法
{
    变量 命令 <参考 类型 = 命令执行类>
    命令 = 命令执行类.创建 ("ping", "www.baidu.com")
    变量 输出管道 <参考 类型 = 读关闭接口>
    变量 错误 <类型 = 错误接口 值 = 空对象>
    输出管道 = 命令.取标准输出管道 (错误.取地址 ())
    如果 (错误 != 空对象)
    {
        换行输出 (错误.信息)
    }
    命令.启动 ()
    变量 扫描器 <参考 类型 = 缓冲扫描器类>
    扫描器 = 缓冲扫描器类.创建 (输出管道)
    启动协程 ()
    {
        判断循环 (扫描器.扫描 ())
        {
            换行输出 (GBK到文本 (扫描器.取扫描结果 ().到数组 ()))
        }
    }
    命令.等待 ()


}



刚才写错了,这样就行了。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-24 18:41 , Processed in 0.083334 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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