0

私のコンソール アプリケーションでは、一連のコマンドを実行する必要があります。

D:
cd d:\datafeeds
grp -encrypt -myfile.xls

この一連のコマンドは、ツール (gpg) を使用して実際にファイルを暗号化します。
どうすればいいですか?

4

4 に答える 4

1

プロセスを作成できます。これを使用するには、生成された .exe を grp のあるフォルダーで実行します。

 Process process1 = new Process();
 process1.StartInfo.UseShellExecute = false;
 process1.StartInfo.RedirectStandardOutput = true;
 process1.StartInfo.FileName = "cmd.exe";
 process1.StartInfo.Arguments = "/C grp -encrypt -myfile.xls";
于 2012-11-06T21:06:41.630 に答える
1

他の回答では、WorkingDirectory を設定する機能について言及していません。これにより、ディレクトリを変更する操作が不要になり、実行可能ファイルを datafeeds ディレクトリに保存する必要がなくなります。

Process proc = new Process();
proc.StartInfo.WorkingDirectory = "D:\\datafeeds";
proc.StartInfo.FileName = "grp";
proc.StartInfo.Arguments = "-encrypt -myfile.xls";
proc.Start();

// Comment this out if you don't want to wait for the process to exit.
proc.WaitForExit();
于 2012-11-06T21:09:45.430 に答える
0

Process.start を使用すると、シェルでコマンドを実行できます。

この質問を参照してください: .NET で同等の ShellExecute

于 2012-11-06T21:05:52.267 に答える
0

コマンドを含むバッチ ファイルを作成します。
次に、Process.Start および ProcessStartInfo クラスを使用してバッチを実行します。

  ProcessStartInfo psi = new ProcessStartInfo(@"d:\datafeeds\yourbatch.cmd");
  psi.WindowStyle = ProcessWindowStyle.Minimized;
  psi.WorkingDirectory = @"d:\datafeeds";
  Process.Start(psi);

ProcessStartInfo には、他の便利なプロパティが含まれています。MSDN のドキュメントを参照してください
。 Process と ProcessStartInfo には、using System.Diagnostics;

このシナリオ (コマンド ライン ツールを実行する必要がある場合) では、ProcessStartInfo プロパティを使用してすべてをコーディングするのではなく、バッチ アプローチを使用することを好みます。何かを変更する必要があり、利用可能なコードがない場合は、より柔軟になります。

于 2012-11-06T21:07:38.973 に答える