带有双引号参数的 exec

2023-11-22

我想执行findWindows 命令使用exec包,但 Windows 正在做一些奇怪的转义。

我有类似的东西: out, err := exec.Command("find", `"SomeText"`).Output()

但这会引发错误,因为 Windows 正在将其转换为 find /SomeText"

有谁知道为什么?我如何执行find在 Windows 上使用 exec 包?

Thanks!


好吧,这比你想象的要复杂一点,但是有is一个办法:

package main

import (
    "fmt"
    "os/exec"
    "syscall"
)

func main() {
    cmd := exec.Command(`find`)
    cmd.SysProcAttr = &syscall.SysProcAttr{}
    cmd.SysProcAttr.CmdLine = `find "SomeText" test.txt`
    out, err := cmd.Output()
    fmt.Printf("%s\n", out)
    fmt.Printf("%v\n", err)
}

很遗憾,尽管 2011 年添加了对此的支持,它似乎没有进入文档然而。 (虽然也许我只是不知道该去哪里寻找。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有双引号参数的 exec 的相关文章

随机推荐