繁体   English   中英

C#命令行执行命令属于另一个可执行文件

[英]C# command line execute commands belongs to another executable

下面是我尝试使用参数运行一个命令的代码。 (调用Tectia SFTP客户端配置文件并上传文件)

        Process cmd = new Process();
        cmd.StartInfo.FileName = "cmd.exe";
        cmd.StartInfo.Arguments = $"/c sftpg3 {profile}";
        cmd.StartInfo.RedirectStandardInput = true;
        cmd.StartInfo.RedirectStandardOutput = true;
        cmd.StartInfo.CreateNoWindow = true;
        cmd.StartInfo.UseShellExecute = false;
        cmd.Start();

        using (StreamWriter sw = cmd.StandardInput){
                    if (sw.BaseStream.CanWrite)
                        sw.WriteLine($"/c sput {filename} {output}");
         }

该过程开始后,它登录到SFTP中并被卡住。 它不会输入下一个命令,因为它被视为另一个程序。

想问一下登录后如何执行下一个命令? 我尝试了通过&&串联调用CMD,但也无法正常工作。 我们只能根据客户要求通过命令行使用SFTP。

  • 使用-B -选项启动sftpg3以从标准输入中读取。

  • 使用-B <filename>选项启动sftpg3 ,以从命令批处理文件中读取。

文档中提供了命令行参数的更多详细信息

另外,我不希望您第二次写/c /c只是传递给cmd.exe东西。 关于这一点,为什么要直接调用cmd.exe而不是二进制文件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM