我想执行find
Windows 命令使用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(使用前将#替换为@)