windows - 在 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。
请指导我解释的问题。
先感谢您。
此致
解决方案
当您curl
在命令提示符下运行时,这会在幕后为您添加相应环境变量的前缀。您可以通过执行以下操作来验证这一点:
- 使用快捷键
Windows Key + s
调出搜索框 - 输入环境变量并选择最上面的结果
- 单击底部的环境变量按钮
- 检查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)
推荐阅读
- react-native - 在组件中的 navigation.navigate() 之后返回?
- django - 模板问题中的Django递归关系嵌套
- r - 根据指定的值差异过滤 ID
- r - 系统错误(命令,实习生 = TRUE):找不到“C:\Program” selectWeka 函数
- c++ - 使用自定义凭据提供程序进行远程桌面连接
- mysql - 如何显示两个共享 id 的表的结果?
- c++ - std::is_same - 从integral_constant 继承函数的用例
- powershell - 使用 PowerShell 和新式身份验证连接到 Exchange Online(无任何依赖项)
- android - 如何为新创建的实例添加 Fragment 标签?
- php - PHP中如何让用户选择输出目录