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

在Windows上使用exec.Command进行Noverify

常经赋
2023-03-14
问题内容

我想使用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()

我尝试了什么

您可以在此摘要中找到我的源代码。,尽管分隔符在上方为空,但似乎args是以字符串分隔的形式加入的。

问题

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

问题答案:

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

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

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。该示例也这样做。



 类似资料:
  • 我最近在Windows10上升级了我的Docker工具箱,现在我的音量挂载不再工作了。我什么都试过了。下面是当前的挂接路径:

  • 问题内容: 嗨,我正在尝试执行脚本以使用Golang将数据填充到数据库中 问题是我遇到了错误: 我认为问题是执行人员认为是dbname的最后一个参数(sql脚本路径) 终端中的以下命令正在运行: 但我尝试在Go中复制以自动执行脚本。 该脚本具有删除表,创建表,插入和具有FK关系的PK,这是一个非常完整的脚本,因此我无法逐行执行,因此我决定执行de mysql程序以将数据插入数据库中。 有什么建议?

  • 我试图通过NTLM代理发出请求,如下所示: 但它失败了,下面是日志: 环境类 操作系统:Windows 10 JRE: AdoptOpenJdk v11 代理类型:NTLM(Wingate) 问题上面的代码有问题吗? Obs相同的代码适用于Apache Http客户端v4.5.12

  • 我可以在没有Android手机的情况下运行Android模拟器吗?我已经安装了Android Studio,我已经安装了Android虚拟设备。但是,当我尝试运行它时,它会给出这样的错误: 无法在Android上启动项目:运行adb时出错:未找到Android设备。请连接设备并按照此处的说明启用USB调试:https://developer.android.com/studio/run/devic

  • 虽然我只是在尝试安装JabRef,但我很惊讶这个看似简单的任务却给我带来了这么多麻烦。 如何定义OpenJFX在哪里?或 在哪里可以获得包含JavaFX for Java8的JDK或JRE? 最好的问候!

  • 问题内容: 我有一种情况,我需要运行 一个 从窗户经常Linux shell命令(用不同的文件名)。我正在使用PuTTY和WinSCP来执行此操作(需要登录名和密码)。该文件通过WinSCP复制到linux机器中的预定义文件夹,然后从PuTTY运行命令。有没有一种方法可以使我通过程序自动执行此操作。理想情况下,我想从Windows右键单击该文件,然后发出命令,该命令会将文件复制到远程计算机,并以文