ホームページ > バックエンド開発 > C++ > c#でバッチファイルを実行するときに「exitcode:1」エラーをトラブルシューティングする方法は?

c#でバッチファイルを実行するときに「exitcode:1」エラーをトラブルシューティングする方法は?

Patricia Arquette
リリース: 2025-01-27 04:16:12
オリジナル
618 人が閲覧しました

How to Troubleshoot

C# でのバッチ ファイルの実行とトラブルシューティング

C# では、Process クラスを使用してバッチ ファイルを実行できます。ただし、実行中にエラーが発生する場合があります。

よくある質問:

たとえば、エラー メッセージ「ExitCode: 1 (一般エラーはすべてキャッチ)」は、バッチ ファイルの実行中に一般エラーが発生したことを意味します。

解決策:

このエラーを診断するには、実行されたバッチ ファイルの出力ストリームとエラー ストリームをリダイレクトして検査することが 1 つの方法です。これは、エラーの原因を洞察するのに役立ちます。次のコードはこの手法を実装しています:

<code class="language-csharp">public 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("输出>>" + (String.IsNullOrEmpty(output) ? "(无)" : output));
    Console.WriteLine("错误>>" + (String.IsNullOrEmpty(error) ? "(无)" : error));
    Console.WriteLine("ExitCode: " + exitCode.ToString());
    process.Close();
}</code>
ログイン後にコピー

その他の注意事項:

  • バッチ ファイルが C:\Windows\System32 ディレクトリにないことを確認してください。
  • 潜在的なデッドロックを回避するには、非同期ストリーム読み取りメソッドを使用します。

この改訂された出力は、元の意味を維持し、画像を元の形式に保ちながら、より簡潔で自然な説明を提供します。

以上がc#でバッチファイルを実行するときに「exitcode:1」エラーをトラブルシューティングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート