如何使用 exec.command 启动一个带空格的文件?添加引号似乎不起作用, " 或 %20 而不是空格。package mainimport ("fmt""os/exec")func main() { StartProcess("C:\\File With Spaces.txt")}func StartProcess(Filename string) { Filename = "\"" + Filename + "\"" cmd := exec.Command("cmd","/C start",Filename) err := cmd.Start() if err!=nil{ fmt.Println(err) }}
3 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
这有效,但仅适用于 Windows
cmd := exec.Command("rundll32.exe", "url.dll,FileProtocolHandler", Filename)
交互式爱情
TA贡献1712条经验 获得超3个赞
您需要cmd.Wait检查您的方法返回的任何错误
package main
import (
"bytes"
"log"
"os"
"os/exec"
)
func main() {
args := os.Args
cmd := exec.Command(args[1], args[2:]...)
var b bytes.Buffer
cmd.Stdout = &b
err := cmd.Start()
if err != nil {
log.Fatal(err)
}
if err := cmd.Wait(); err != nil {
log.Fatal(err)
}
if _, err := os.Stdout.Write(b.Bytes()); err != nil {
log.Fatal(err)
}
}
- 3 回答
- 0 关注
- 323 浏览
添加回答
举报
0/150
提交
取消