1325901607 发表于 2024-11-2 01:21:44

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

现在问题是他那个执行的命令,只有执行完命令才会显示,用了好多方法,取那个输出通道也不行,不知道怎么搞,没搞过这个go

1325901607 发表于 2024-11-2 02:31:05

不用执行, 用启动命令怎么获取它的输出数据

创世魂 发表于 2024-11-2 08:20:05

<火山程序 类型 = "通常" 版本 = 1 />

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


}


你试试这个行不行

1325901607 发表于 2024-11-2 09:05:41

扫描器,我试一下

1325901607 发表于 2024-11-2 09:45:56

不行啊 我去,什么东西都没有扫描出来,没有扫描出来任何东西

1325901607 发表于 2024-11-2 09:48:24

<火山程序 类型 = "通常" 版本 = 1 />方法 启动方法 <公开 类型 = 整数> {   变量 命令 <参考 类型 = 命令执行类>   变量 扫描器 <参考 类型 = 缓冲扫描器类>   变量 输出管道 <参考 类型 = 读关闭接口>       命令 = 命令执行类.创建 ()   输出管道 = 命令.取标准输出管道 ()   变量 错误 <类型 = 错误接口>   错误 = 命令.执行 ()   如果真 (错误 != 空对象)   {         抛出异常 (错误接口.格式新建 ("启动命令失败: %w", 错误))         返回 (1)   }      扫描器 = 缓冲扫描器类.创建 (输出管道)   判断循环 (扫描器.扫描 ())   {         扫描器.取扫描结果文本 ()   }      命令.等待 ()      返回 (1)}

1325901607 发表于 2024-11-2 09:48:41

本帖最后由 1325901607 于 2024-11-2 09:50 编辑

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

创世魂 发表于 2024-11-2 10:16:27

<火山程序 类型 = "通常" 版本 = 1 />

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


}



刚才写错了,这样就行了。

zj3751 发表于 2025-4-13 02:51:13

创世魂 发表于 2024-11-2 10:16
方法 测试方法
{
    变量 命令


exec: "ping": executable file not found in %PATH%
页: [1]
查看完整版本: go的命令执行类,有没有方法让他实时显示进度?