.NET을 사용하여 동일한 프로세스로 여러 명령줄 실행
이 게시물에서는 각각에 대한 새로운 프로세스. 목표는 DOS 명령 셸을 시작하고 MySQL 명령 셸로 전환하여 명령을 원활하게 실행하는 것입니다.
제공된 초기 코드 조각은 ExecuteCommand 메서드를 사용하여 이를 달성하려고 시도했습니다. 그러나 효율성을 높이고 여러 프로세스가 생성되는 것을 방지하려면 보다 세련된 접근 방식이 필요합니다.
해결책은 표준 입력을 리디렉션하고 StreamWriter를 활용하여 명령을 기존 프로세스에 전달하는 데 있습니다. 수정된 코드는 다음과 같습니다.
Process p = new Process(); ProcessStartInfo info = new ProcessStartInfo(); info.FileName = "cmd.exe"; info.RedirectStandardInput = true; info.UseShellExecute = false; p.StartInfo = info; p.Start(); using (StreamWriter sw = p.StandardInput) { if (sw.BaseStream.CanWrite) { sw.WriteLine("mysql -u root -p"); sw.WriteLine("mypassword"); sw.WriteLine("use mydb;"); } }
이 코드에서는 Process 개체를 생성하고 cmd.exe를 사용하도록 구성합니다. RedirectStandardInput을 true로 설정하면 표준 입력의 리디렉션이 활성화됩니다. 그런 다음 StreamWriter 개체를 인스턴스화하고 이를 사용하여 프로세스의 입력 스트림에 직접 명령을 씁니다.
이 접근 방식을 사용하면 동일한 프로세스 내에서 여러 명령을 실행하여 애플리케이션 흐름을 간소화할 수 있습니다.
위 내용은 단일 .NET 프로세스 내에서 여러 DOS 및 MySQL 명령을 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!