当前位置: 首页 > 面试题库 >

exec用双引号引起来

萧凡
2023-03-14
问题内容

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



 类似资料:
  • 问题内容: 我需要运行以下命令: 所以我执行: 它失败,并显示以下错误: 在命令行中执行命令时,命令起作用。为什么会发生这种情况?我该如何转义那些双引号以防止发生此错误? 问题答案: 当执行给定命令行时,shell将其解析为一组命令行参数,这些参数实际上是: shell解释的参数中的多余引号,而不是传递给基础程序。因此,当使用Go执行相同的程序时,直接在其中传递参数列表,则应省去那些多余的引号。

  • 问题内容: 手动编写HTML时,我总是使用单引号。我使用很多渲染的HTML,这些HTML总是使用双引号。这使我可以确定HTML是手工编写的还是生成的。这是一个好主意吗? 两者有什么区别?我知道它们都可以工作,并且得到所有现代浏览器的支持,但是在不同情况下,一个实际上比另一个更好吗? 问题答案: W3组织说: 默认情况下,SGML要求使用双引号(ASCII十进制34)或单引号(ASCII十进制39)

  • 问题内容: 这实际上有什么区别? 这工作正常: 但以下操作无效: 这是为什么? 问题答案: 那是因为双引号被认为是标准的,而单引号却没有。这并不是真正针对JQuery,而是关于JSON标准。因此,无论使用JS工具包,您都应该期待相同的行为。 值可以是带双引号的字符串,也可以是数字,也可以是true或false或null,或者是对象或数组。这些结构可以嵌套。

  • 我是gradle的新手,目前只是试图遵循教程,有很多次我看到单引号和双引号混杂在一起。我只是想知道是否有一个不同的时间应该使用一套比另一个。这方面的一个例子是教程的第6.12节--默认任务: 所以,我只想知道我是否应该注意这些差异,或者它们是否可以相互改变,我可以使用单引号或双引号时打印字符串在Gradle。

  • 问题内容: 我一直在努力寻找一种在Python中加载JSON对象的好方法。我发送此json数据: 到后端,它将以字符串形式接收,然后我用来解析它。 但是每次我遇到同样的异常: 我用谷歌搜索,但是除了这个解决方案之外似乎什么都没用,在我个人看来效率不高,因为它接受任何类型的数据,即使不是json格式的数据也是如此。 任何建议将不胜感激。 问题答案: 这个: 不是JSON。 这个: 是JSON。 编辑

  • 本文向大家介绍Perl双引号,包括了Perl双引号的使用技巧和注意事项,需要的朋友参考一下 示例 与单引号字符串不同,双引号字符串使用插值和转义。要双引号字符串,请使用双引号"或qq运算符。 这qq在这里很有用,以避免必须转义引号。没有它,我们将不得不写... ...那不是很好。 Perl不限制你使用一个斜杠/用qq; 您可以使用任何(可见)字符。 您还可以将数组内插到字符串中。 默认情况下,这些