C#:
- private void go()
- {
- try
- {
- // Get the full file path
- string strFilePath = @"C:\inetpub\wwwroot\ga\copyphone.bat";
- // Create the ProcessInfo object
- System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo("cmd.exe");
- psi.UseShellExecute = false;
- psi.RedirectStandardOutput = true;
- psi.RedirectStandardInput = true;
- psi.RedirectStandardError = true;
- psi.WorkingDirectory = @"C:\inetpub\wwwroot\ga\";
- // Start the process
- System.Diagnostics.Process proc = System.Diagnostics.Process.Start(psi);
- // Open the batch file for reading
- System.IO.StreamReader strm = new System.IO.StreamReader(strFilePath, System.Text.Encoding.GetEncoding(950));
- //System.IO.StreamReader strm = System.IO.File.OpenText(strFilePath);
- //strm.CurrentEncoding.GetEncoder = System.Text.Encoding.GetEncoding(950);
- //strm = System.IO.File.OpenText(strFilePath);
- Response.Write(strm.CurrentEncoding.ToString());
- // Attach the output for reading
- System.IO.StreamReader sOut = proc.StandardOutput;
- // Attach the in for writing
- System.IO.StreamWriter sIn = proc.StandardInput;
- // Write each line of the batch file to standard input
- while (strm.Peek() != -1)
- {
- sIn.WriteLine(strm.ReadLine());
- }
- strm.Close();
- // Exit CMD.EXE
- string stEchoFmt = "# {0} run successfully. Exiting";
- sIn.WriteLine(String.Format(stEchoFmt, strFilePath));
- sIn.WriteLine("EXIT");
- // Close the process
- proc.Close();
- // Read the sOut to a string.
- string results = sOut.ReadToEnd().Trim();
- // Close the io Streams;
- sIn.Close();
- sOut.Close();
- string fmtStdOut = "{0}";
- this.Response.Write(String.Format(fmtStdOut,results.Replace(System.Environment.NewLine, "
- ")));
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
沒有留言:
張貼留言