私のコンソール アプリケーションでは、一連のコマンドを実行する必要があります。
D:
cd d:\datafeeds
grp -encrypt -myfile.xls
この一連のコマンドは、ツール (gpg) を使用して実際にファイルを暗号化します。
どうすればいいですか?
私のコンソール アプリケーションでは、一連のコマンドを実行する必要があります。
D:
cd d:\datafeeds
grp -encrypt -myfile.xls
この一連のコマンドは、ツール (gpg) を使用して実際にファイルを暗号化します。
どうすればいいですか?
プロセスを作成できます。これを使用するには、生成された .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";
他の回答では、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();
Process.start を使用すると、シェルでコマンドを実行できます。
この質問を参照してください: .NET で同等の ShellExecute
コマンドを含むバッチ ファイルを作成します。
次に、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 プロパティを使用してすべてをコーディングするのではなく、バッチ アプローチを使用することを好みます。何かを変更する必要があり、利用可能なコードがない場合は、より柔軟になります。