cmd /c dircmd dircmd /?

/ C执行由字符串指定的命令,然后终止

因此,要修复您的应用程序,请使用以下命令:

cmd = exec.Command("cmd", "/c", "dir")

一种替代方法是通过stdin传递命令:

cmd := exec.Command("cmd")
cmd.Stdout = os.Stdout
stdin, err := cmd.StdinPipe()
if err != nil {
    log.Fatal(err)
}
go func() {
    defer stdin.Close()
    io.WriteString(stdin, "dir\n")
}()
err = cmd.Run()
if err != nil {
    log.Fatalf("cmd.Run() failed with %s\n", err)
}
cmd = exec.Command("explorer.exe", "test.bmp")
cmddircmd.exedir dir.* /sdir.execmd.exe

注意2:如果您以这种方式运行ls / dir来获取文件夹的内容(而不是作为示例),则ioutil.ReadDir是一个更好的选择。