2017-09-25 4 views
0

メモ帳のローカルインスタンスをテキストファイルで起動して、リモート接続スクリプトで最終的に使用するためのc#cmd行引数を試してみようとしています。私はSystem.Diagnostics.Processを使用していますが、StartInfo.Argumentsは実際には完全に実行されず、メモ帳インスタンスを開きます。プロセスの引数が実行されていません

  var p = new System.Diagnostics.Process(); 
      p.StartInfo.FileName = "cmd.exe"; 
      p.StartInfo.Arguments = @"cd\ start notepad C:\test\testcmdline.txt"; 
      p.StartInfo.RedirectStandardOutput = true; 
      p.StartInfo.UseShellExecute = false; 
      p.StartInfo.CreateNoWindow = true; 
      p.Start(); 

このウィンドウは、cd \が機能していることを示していますが、「開始メモ帳」は実行されていないようです。

私はStartInfo.Argumentsの構造について何か不足していますか?

編集:私はリモートサーバー上でPythonスクリプトを実行する方法を理解しようとしており、これをC#でcmdで実行するためのテストとして使用しています。これをメモ帳で実行しても問題ありませんが、Pythonスクリプトをリモートで実行するための原則が引き継がれるかどうかはわかりませんので、C#でcmdを使用してアイテムを実行する方法を学習しようとしています。

+1

本当に複数のステートメントを実行する必要はありますか?単に 'notepad.exe'をFileNameとして使用し、' @ "C:\ test \ testcmdline.txt" 'を引数として使用できませんでしたか? – bassfader

+0

それは動作しますが、接続後にリモートサーバ上でPythonスクリプトをcmd行で実行する方法のテンプレートとして使用しています。 cmdの行を走らせることは、2つの間の共通性のまともな点であるように思えます。 – Jaeriko

+1

AFAIK、プロセスの 'RedirectStandardInput'を' true'に設定し、個々のコマンドを 'Process.StandardInput'ストリームに書き込むための' StreamWriter'を作成する必要があります。次のリンクの中で、最も上にあるアップボーンの答えを見てください:https://stackoverflow.com/questions/437419/execute-multiple-command-lines-with-the-ame-process-using-net – bassfader

答えて

0

私はより単純な2 arg Process.Startを使用して終了しました。

string cmdText; 
cmdText = @"/C C:\test\testcmdline.txt"; 
Process.Start("cmd.exe", cmdText); 
関連する問題