gpt4 book ai didi

windows - 在 Windows 上使用 exec.Command 进行 noverify

转载 作者:数据小太阳 更新时间:2023-10-29 03:08:03 25 4
gpt4 key购买 nike

我想使用 VKCOM/noverify来分析代码。使用此命令从命令行(windows dos shell)调用它有效

 noverify.exe -exclude-checks arraySyntax,phpdocLint 
-output result.txt
C:\Dev\PHP\ResourceSpace_9_0_13357\include

问题是我无法将参数传递给 cmnd := exec.Command("noverify.exe", args)

options := " -exclude-checks arraySyntax, PHPDoc"
pathToCode := "C:\\Dev\\PHP\\ResourceSpace_9_0_13357\\include"

// this works
cmnd := exec.Command("noverify.exe", pathToCode)


args := []string{options, pathToCode}
arg := strings.Join(args, "")
// passing options does not work
// cmnd := exec.Command("noverify.exe", arg)

b, err := cmnd.CombinedOutput()

我尝试了什么

你可以找到my source code in this gist尽管上面的分隔符是空的,但似乎 args 被连接为由 , 分隔的字符串。

问题

  1. 如何将多个参数传递给 exec.Comman("yourFoo.exe", cmdArgs...)
  2. 为什么我的尝试在 Windows 上不起作用?

最佳答案

有多个选项可以将参数传递给 exec.Command:

您可以使用多个字符串作为参数:

cmd := exec.Command("your-command", "arg1", "arg2")

如果你有一个参数片段,你可以使用扩展运算符

args := []string{"-exclude-checks", "arraySyntax,phpdocLint", "-output", "result.txt", "your-path"}
cmd := exec.Command("your-command", args...)

问题二:在你的代码中

options := " -exclude-checks arraySyntax, PHPDoc"
pathToCode := "C:\\Dev\\PHP\\ResourceSpace_9_0_13357\\include"

args := []string{options, pathToCode}

您将两个选项传递给外部程序。如果你在命令行上写了同样的东西,你就通过了

your-command.exe " -exclude-checks arraySyntax, PHPDoc" "your-path"

这行不通,也是您的程序无法运行的原因。

简而言之,无论您在命令之间放置一个空格,您都需要为 exec.Command 提供一个单独的参数。 example也是这样做的。

关于windows - 在 Windows 上使用 exec.Command 进行 noverify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57763537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com