【问题标题】:RUN cmd and execute curl command in VB.NET在 VB.NET 中运行 cmd 并执行 curl 命令
【发布时间】:2021-11-19 13:53:12
【问题描述】:

我想从 vb.net 运行 CMD,然后用它运行 curl 命令。我已经遵循了这个问题How to run DOS/CMD/Command Prompt commands from VB.NET? 中的选项,但它对我不起作用。

我正在通过 vb.net 运行此命令。

Process.Start("cmd /k", "curl --location --request GET http://ipaddress:port/")

预期的输出应该是 Hello-World。但我收到一个错误“

系统找不到指定的文件。

但是,当我在 CMD 中运行相同的命令时,它可以正常工作。 有什么办法让它工作吗?

我已经看过其他方法,例如 httpwebrequest,并且已经尝试过它们并且它有效,但我不想使用这些方法,因为我有许多其他复杂的 curl 命令并且不想将它们转换为冗长的 httprequests。

请指导我解释解释的问题。

提前谢谢你。

最好的问候

【问题讨论】:

    标签: windows vb.net powershell curl cmd


    【解决方案1】:

    当您在命令提示符下运行 curl 时,它在幕后所做的是为您添加相应环境变量的前缀。您可以通过执行以下操作来验证这一点:

    1. 使用快捷键Windows Key + s调出搜索框
    2. 输入环境变量并选择最上面的结果
    3. 点击底部的环境变量按钮
    4. 检查 Path(或 PATH)变量以了解您的 curl.exe 应用程序所在的位置

    对于我的操作系统,应用程序位于C:\Windows\System32\curl.exe

    一旦您获得完全限定的文件名,您的代码中就会出现另一个错误。您正试图在Process.Start文件名 参数中传递/k。相反,将它传递到 arguments 参数中。

    这是一个例子:

    Dim curlApplicationPath = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "curl.exe")
    Dim arguments = $"/k {curlApplicationPath} --location --request GET http://ipaddress:port/"
    Process.Start("cmd", arguments)
    

    【讨论】:

      猜你喜欢
      • 2016-06-17
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      相关资源
      最近更新 更多