ホームページ >バックエンド開発 >C++ >C# でバッチ ファイルを効果的に実行し、ExitCode 1 エラーをトラブルシューティングするにはどうすればよいですか?

C# でバッチ ファイルを効果的に実行し、ExitCode 1 エラーをトラブルシューティングするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-27 04:21:09616ブラウズ

How Can I Effectively Execute Batch Files in C# and Troubleshoot ExitCode 1 Errors?

c#

でバッチファイルを実行します C#でバッチファイルの実行は通常非常に簡単ですが、場合によっては困難に遭遇する可能性があります。未知の出口1(通常は一般的なエラー)に遭遇した場合、特定の理由を調査する必要があります。

バッチファイルを実行する一般的な方法は、次のコードフラグメントに示されています。

ただし、場合によっては、このコードには予想される結果がない場合があります。障害の除外のために、出力とエラーの流れをキャプチャし、コンテンツを確認できます。

出力とエラーの流れをチェックすることにより、障害を引き起こす基本的な問題を決定できます。
<code class="language-csharp">public void ExecuteCommand(string command)
{
    int ExitCode;
    ProcessStartInfo ProcessInfo;
    Process Process;

    ProcessInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
    ProcessInfo.CreateNoWindow = true;
    ProcessInfo.UseShellExecute = false;

    Process = Process.Start(ProcessInfo);
    Process.WaitForExit();

    ExitCode = Process.ExitCode;
    Process.Close();

    MessageBox.Show("ExitCode: " + ExitCode.ToString(), "ExecuteCommand");
}</code>

その他の注意事項:

<code class="language-csharp">static void ExecuteCommand(string command)
{
    int exitCode;
    ProcessStartInfo processInfo;
    Process process;

    processInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
    processInfo.CreateNoWindow = true;
    processInfo.UseShellExecute = false;
    // 重定向输出流
    processInfo.RedirectStandardError = true;
    processInfo.RedirectStandardOutput = true;

    process = Process.Start(processInfo);
    process.WaitForExit();

    // 读取流
    string output = process.StandardOutput.ReadToEnd();
    string error = process.StandardError.ReadToEnd();

    exitCode = process.ExitCode;

    Console.WriteLine("output>>" + (String.IsNullOrEmpty(output) ? "(none)" : output));
    Console.WriteLine("error>>" + (String.IsNullOrEmpty(error) ? "(none)" : error));
    Console.WriteLine("ExitCode: " + exitCode.ToString(), "ExecuteCommand");
    process.Close();
}

static void Main()
{
    ExecuteCommand("echo testing");
}</code>

C:WindowsSystem32ディレクトリでバッチファイルを実行すると、特定のセキュリティ設定が正しい実行を妨げる場合があります。バッチファイルを他の位置に移動すると、この問題を解決できます。

死んだロックを避けるために、非同期方法を使用して出力とエラーの流れを読み取ることをお勧めします。これは、次のコードを使用して実装できます これらのガイドラインに従って出力とエラーの流れを調査することにより、C#でバッチファイルを効果的に実行し、遭遇した問題を解決できます。

以上がC# でバッチ ファイルを効果的に実行し、ExitCode 1 エラーをトラブルシューティングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。