猿问

你如何在 golang 中为 exec.command 添加空格

如何使用 exec.command 启动一个带空格的文件?添加引号似乎不起作用, " 或 %20 而不是空格。


package main


import (

"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)

    }

}


临摹微笑
浏览 320回答 3
3回答

噜噜哒

这有效,但仅适用于 Windowscmd := exec.Command("rundll32.exe", "url.dll,FileProtocolHandler", Filename)

交互式爱情

您需要cmd.Wait检查您的方法返回的任何错误package mainimport (    "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)    }}
随时随地看视频慕课网APP

相关分类

Go
我要回答