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是一个更好的选择。