Melaksanakan fail batch di C#biasanya sangat mudah, tetapi ia mungkin menghadapi kesukaran dalam beberapa kes. Apabila menghadapi ExitCode 1 yang tidak diketahui (biasanya ralat umum), sebab tertentu mesti disiasat.
Kaedah umum untuk melaksanakan fail batch ditunjukkan dalam serpihan kod berikut:
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"); }
Dengan memeriksa aliran output dan ralat, masalah asas yang menyebabkan kegagalan dapat ditentukan.
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"); }
Apabila melaksanakan fail batch dalam direktori C: WindowsSystem32, tetapan keselamatan tertentu boleh mengganggu pelaksanaan yang betul. Menggerakkan fail batch ke kedudukan lain dapat menyelesaikan masalah ini. Untuk mengelakkan kunci mati, disarankan untuk menggunakan kaedah tak segerak untuk membaca aliran output dan ralat. Ini boleh dilaksanakan menggunakan kod berikut:
Dengan mengikuti garis panduan ini dan menyiasat aliran output dan ralat, anda boleh melakukan fail batch dengan berkesan di C#dan menyelesaikan sebarang masalah yang dihadapi.
Atas ialah kandungan terperinci Bagaimanakah saya dapat melaksanakan fail batch dengan berkesan dalam C# dan menyelesaikan masalah ExitCode 1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!