exec用双引号引起来
我想find
使用exec
程序包执行Windows命令,但是Windows进行了一些奇怪的转义。
我有类似的东西: out, err := exec.Command("find",
“SomeText”).Output()
但这会引发错误,因为Windows会将其转换为 find /SomeText"
有人知道为什么吗?如何find
使用exec程序包在Windows上执行?
谢谢!
回答:
OK,这是一个比较复杂一点比你预期,但有 是 一个解决方案:
package mainimport (
"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