我正在尝试为命令提示符调用内置命令,我遇到了我不明白的错误.
func main() {
cmd := exec.Command("del", "C:\trial\now.txt")
// Reboot if needed
cmd.Stdout = os.Stdout
if err := cmd.Run(); err != nil {
log.Fatal(err)
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
exec: "del": executable file not found in %PATH%
exit status 1
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
del它不是可执行文件,它是一个内置命令.exec.Command允许您分叉到另一个可执行文件.要使用shell命令,您必须调用shell可执行文件,并传入您想要执行的内置命令(和参数):
cmd := exec.Command("cmd.exe", "/C", "del C:\\trial\\now.txt")
Run Code Online (Sandbox Code Playgroud)
请注意,您还必须如上所述转义字符串中的反斜杠,或使用反引号引用的字符串:
cmd := exec.Command("cmd.exe", "/C", `del C:\trial\now.txt`)
Run Code Online (Sandbox Code Playgroud)
但是,如果您只想删除文件,最好使用os.Remove直接删除文件而不是分配给shell来执行此操作.
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |