windows – 带双引号参数的exec

我想使用exec包执行find Windows命令,但是 Windows正在做一些奇怪的转义. 我有类似的东西: out,err:= exec.Command(“find”,“SomeText”`).输出() 但这是抛出错误,因为Windows正在将其转换为 find / SomeText“ 有谁知道为什么?如何使用exec包在windows

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

我有类似的东西:

out,err:= exec.Command(“find”,“SomeText”`).输出()

但这是抛出错误,因为Windows正在将其转换为

find / SomeText“

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

谢谢!

好吧,它比你想象的要复杂一些,但有一个解决方案:

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

不幸的是,although support for this was added in 2011,它似乎还没有进入the documentation. (虽然也许我只是不知道在哪里看.)

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部