首页 > 解决方案 > 在 VB.NET 中运行 cmd 并执行 curl 命令

问题描述

我想从 vb.net 运行 CMD,然后用它运行 curl 命令。我已经按照这个问题中的选项如何从 VB.NET 运行 DOS/CMD/命令提示符命令?已经,但它对我不起作用。

我通过 vb.net 运行这个命令。

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

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

系统找不到指定的文件。

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

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

请指导我解释的问题。

先感谢您。

此致

标签: windowsvb.netpowershellcurlcmd

解决方案


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

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

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

一旦获得完全限定的文件名,代码中就会出现另一个错误。您/k正在尝试传递. Process.Start相反,在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)

推荐阅读