簡體   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