为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
临摹微笑 2021-08-16 15:36:33
如何使用 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)


查看完整回答
反对 回复 2021-08-16
?
交互式爱情

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)

    }

}


查看完整回答
反对 回复 2021-08-16
  • 3 回答
  • 0 关注
  • 323 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信