exec用双引号引起来

我想find使用exec程序包执行Windows命令,但是Windows进行了一些奇怪的转义。

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

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

有人知道为什么吗?如何find使用exec程序包在Windows上执行?

谢谢!

回答:

OK,这是一个比较复杂一点比你预期,但有 一个解决方案:

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年添加了对此功能的支持,但它似乎尚未纳入文档中。(尽管也许我只是不知道在哪里看。)

以上是 exec用双引号引起来 的全部内容, 来源链接: utcz.com/qa/401007.html

回到顶部