我是靠谱客的博主 强健板栗,最近开发中收集的这篇文章主要介绍C#调用curl命令,C#无法获取curl输出解决方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C#通过进程调用curl命令,可以形成成功,但是curl输出C#应用无法获取解决,导致curl执行成功与否无法知道。

解决方法:

可以C#调用批处理,批处理再调用curl,curl加上参数–stderr,将输出定向到文件,在通过 type命令将输出文件显示,C#就可以获取curl输出结果。

C#代码:

private int ExeUpLoadFile(TextBox resulttxtbox)
{
int ret = 0;
string workingFolder = System.IO.Directory.GetCurrentDirectory();
string curlcmd = workingFolder + “plugincurl” + “upload.bat”;
string cmdarg = this.UserNameTextBox.Text + " " + this.PasswordTextBox.Text + " " +
this.DeviceIPTextBox.Text + " " + this.UpdateFileTextBox.Text;
//创建进程对象
Process tmpprocess = new Process();
tmpprocess.StartInfo.FileName = curlcmd;//设定需要执行的命令
tmpprocess.StartInfo.Arguments = cmdarg;
tmpprocess.StartInfo.UseShellExecute = false;//不使用系统外壳程序启动
tmpprocess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
tmpprocess.StartInfo.RedirectStandardInput = true;//不重定向输入
tmpprocess.StartInfo.RedirectStandardOutput = true; //不重定向输出
tmpprocess.StartInfo.RedirectStandardError = false;
tmpprocess.StartInfo.CreateNoWindow = true;//不创建窗口


resulttxtbox.AppendText("
开始上传升级包...rn");

//开始进程
if (tmpprocess.Start())
{
string log = tmpprocess.StandardOutput.ReadLine();
while (log != null)
{
if (resulttxtbox != null)
{
resulttxtbox.AppendText(log + “rn”);
}

if (log.IndexOf(“curl:”) > -1)
{
ret = -1;
}
log = tmpprocess.StandardOutput.ReadLine();
}
tmpprocess.Close();
tmpprocess = null;
}

if (ret == 0)
{
resulttxtbox.AppendText(" 上传升级包完成.rn");
}
else
{
resulttxtbox.AppendText(" 上传升级包失败.rn");
}


return ret;
}

对应批处理:

@echo off
rem *************************************************
rem
rem 上传文件
rem
rem *************************************************
rem 当前工作路径
set workdir=%~dp0

rem 获取网关登录用户
set sgwuser=%1

rem 获取网关登录密码
set sgwpasswd=%2

rem 获取网关地址
set sgwaddr=%3

rem 上传开发包
%workdir%curl.exe -u %sgwuser%:%sgwpasswd% -T %4 ftp://%sgwaddr%/update.tar.gz --stderr %workdir%result.txt
type %workdir%result.txt
del /F/Q %workdir%result.txt

友情链接:

[1]https://my.oschina.net/schuangye

[2]https://gitee.com/schuangye

最后

以上就是强健板栗为你收集整理的C#调用curl命令,C#无法获取curl输出解决方法的全部内容,希望文章能够帮你解决C#调用curl命令,C#无法获取curl输出解决方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部