登录
首页 >  Golang >  Go问答

使用 Go 多维数组变量进行 os/exec 的变量赋值和调用

来源:stackoverflow

时间:2024-02-24 10:00:24 278浏览 收藏

本篇文章给大家分享《使用 Go 多维数组变量进行 os/exec 的变量赋值和调用》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

我正在尝试在 golang 中创建一个命令数组并循环它们。我不确定是否应该使用映射或切片,并且我确定我的语法是错误的。这是我的第一个 golang 应用程序,我正在努力阅读文档。找不到我的用例。

问题在于分配变量。语法不正确,无法编译。

var c2[9][...]string{
            [3]string{"/c", "ipconfig", "/all"},
            [3]string("/c", "ipconfig", "/all"),
            [3]string("/c", "arp", "-a"),
            [3]string("/c", "route", "print"),
            [2]string("/c", "set"),
            [2]string("/c", "systeminfo"),
            [3]string("/c", "wmic", "qfe"),
            [3]string("/c", "tasklist", "/svc"),
            [3]string("/c", "query", "user"),
    }
    for i := range len(c2) { //assign
            x, e := exec.Command("cmd.exe", c2[i][0], c2[i][1], c2[i][2]).Output()
            if e != nil {
                    log.Fatal(e)
            }
            fmt.Println(string(x))
    }

正确答案


不要使用固定长度数组,而是使用切片:

var c2 = [][]string{
        {"/c", "ipconfig", "/all"},
        {"/c", "ipconfig", "/all"},
        {"/c", "arp", "-a"},
        {"/c", "route", "print"},
        {"/c", "set"},
        {"/c", "systeminfo"},
        {"/c", "wmic", "qfe"},
        {"/c", "tasklist", "/svc"},
        {"/c", "query", "user"},
    }

然后,运行命令:

for i := range len(c2) { //assign
      x, e := exec.Command("cmd.exe", c2[i]...).Output()
            if e != nil {
                    log.Fatal(e)
            }
            fmt.Println(string(x))
    }

今天关于《使用 Go 多维数组变量进行 os/exec 的变量赋值和调用》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>