gpt4 book ai didi

process - 你如何在 golang 中向 exec.command 添加空格

转载 作者:IT王子 更新时间:2023-10-29 02:05:53 26 4
gpt4 key购买 nike

如何使用 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)
}
}

最佳答案

如果您尝试在 Windows 上运行可执行文件,则不需要命令提示符。您只需将可执行文件路径传递给 shell,它就会触发。

例如:

func StartProcess(Filename string) {
// Filename = "cmd /C start \"" + Filename + "\""
cmd := exec.Command(Filename)
err := cmd.Start()
if err!=nil{
fmt.Println(err)
}
}

StartProcess("C:\\path to executable\\executable.exe")

也就是说,通常在 Windows 上启动可执行文件的所有框架(Go 似乎包含在其中)在尝试连接您自己的参数时会遇到麻烦。这就是为什么 exec.Commandargs 参数是可变的。所以你的原件应该是这样的:

cmd := exec.Command("cmd", "/C", "start", Filename)
// ^^^^^^^^^^^^^^^ variadic arguments make Windows happy

关于process - 你如何在 golang 中向 exec.command 添加空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25633077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com