gpt4 book ai didi

go - Windows中的Golang cmd命令

转载 作者:行者123 更新时间:2023-12-01 22:20:45 28 4
gpt4 key购买 nike

我正在尝试在golang中运行cmd命令,但是没有输出。我正在尝试安装npm软件包,通过golang设置环境变量,但无法执行操作,有人可以帮忙吗

package main
import (
"bytes"
"fmt"
"log"
//"os"
"os/exec"
)

const ShellToUse = "cmd"
func Shellout(command string) (error, string, string) {
var stdout bytes.Buffer
var stderr bytes.Buffer
cmd := exec.Command(ShellToUse, "-c", command)
cmd.Stdout = &stdout
cmd.Stderr = &stderr
err := cmd.Run()
return err, stdout.String(), stderr.String()
}
func main() {
var err, out, errout = Shellout("npm install -g rimraf")
if err != nil {
log.Printf("error: %v\n", err)
}
fmt.Println("--- stdout ---")
fmt.Println(out)
fmt.Println(errout)
}
预期的输出我觉得应该安装rimraf软件包,但事实并非如此。它没有任何错误,但是输出了:
Microsoft Windows [Version 10.0.18363.1016]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\jhamuk2\Desktop> // This also the output and there is same path below which shows output ended.

最佳答案

我不在Windows上,所以无法100%确定:
这就是我在Mac上调用上述命令的方式,并且知道Go在Windows上很可能是相同的(或非常相似)。

    cmd := exec.Command("npm", "install", "-g rimraf")
fmt.Println("> " + cmd.String())
out, err := cmd.CombinedOutput()
if err != nil {
log.Fatal(err)
}
fmt.Println(string(out))

关于go - Windows中的Golang cmd命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63684491/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com