【发布时间】:2014-01-14 02:08:14
【问题描述】:
这是我尝试过的:
package main
import (
"fmt"
"os/exec"
)
func main() {
fmt.Println("Removing build directory")
if err := exec.Command("cmd", "/S /Q", "RD", "c:\\build").Run(); err != nil {
fmt.Printf("Error removing build directory: %s\n", err)
}
if err := exec.Command("cmd", "/C", "mkdir", "c:\\build").Run(); err != nil {
fmt.Printf("Error making new build directory: %s\n", err)
}
}
我的输出是:
Removing build directory
Error making new build directory: exit status 1
所以我在删除时没有收到任何错误,但它不会删除任何内容。
这是为什么呢?
【问题讨论】:
-
直接调用这些命令会发生什么?
-
如果我在命令提示符下输入 rd /s /q c:\\build ,它可以工作。
-
你试过使用 exe.Command("cmd", "/S", "/Q", "RS", "C:\\build").Run 吗?我不使用 Windows,所以我无法测试任何这些。
-
使用golang.org/pkg/os/exec/#Cmd.CombinedOutput 而不是运行。这样您就可以从您的子进程中显示标准输出/标准错误。希望它会在那里打印出好的错误消息。
-
@alex: 好的,谢谢你的建议
标签: go