概述
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输出解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复