c# ta birden fazla cmd kodu çalıştırma

+3 oy
29 Mart 2015 severaltimes Stajyer (630 puan)   sordu
29 Mart 2015 mstfergl yeniden etikenlendirildi

c# ta birden fazla cmd kodlarını programın içinde nasıl çalıştırabilirim acaba 

1 cevap

+3 oy
29 Mart 2015 molcay Kıdemli Uzman (12,350 puan)   cevapladı

Öncelikle tam olarak niçin kullanacağını belirtmiş olsan daha iyi bir şekilde yardım cı olabiliriz.

Şimdi cmd yi en etkili şekilde kullanabilmen için iki farklı sınıf ı kullanman gerekecek. Birinci "System.Diagnostics.Process", diğeri "System.Diagnostics.ProcessStartInfo". Bu iki Sınıftan birer örnek yani nesne oluşturman gerekecek.

System.Diagnostics.Process islem = new System.Diagnostics.Process(); //Bu satırda ilk sınıftan nesne oluşturmuş oluyorsun. Bu nesne işlemi taşıyacak olan nesne.
System.Diagnostics.ProcessStartInfo baslangicBilgi = new System.Diagnostics.ProcessStartInfo(); //Bu satırdada ikinci sınıftan nesne oluşturmuş oluyorsun bu nesne cmd içinde yazacağın şeyleri ve cmd nn kendisini ifade edecek.

 

baslangicBilgi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; //Bu satır komut satırının (cmd) nin ekranda açılmaması için kullanılıyor.
baslangicBilgi.FileName = "cmd.exe"; // Burda birinci olarak çalıştırılacak programın adı yazıyor ki bu durum da bu program "cmd.exe" oluyor
baslangicBilgi.Arguments = "mspaint.exe"; //Buraya da cmd de ne yazmak istiyorsan onu yazıyorsun. Yani cmd.exe ye argüman geçiriyorsun. burdaki örnekte cmd üzerinden paint programı açılacak.
islem.StartInfo = baslangicBilgi; //Burada tanımlamiş olduğun başlangıç bilgilerini islemine ekliyorsun.
islem.Start(); // Buda işlemi başlatıyor.

programlama ve işletim sistemi bilgini bilmeden yazdım. O yüzden çok basit de olmuş olabilir çok karışıkta. Kusura bakma. Ayrıca kodları deneyemedim. Çalışmayabilir

29 Mart 2015 severaltimes Stajyer (630 puan)   yorumladı
cmd ile toplu işlem yapıyormuş gibi işlemler yaptırmak istiyorum  örneğin slmgr.vbs/ upk ardından slmgr./ato vb mesela bunları yapmasını nasıl sağlayabilirim c# ta yukarda belirttiğiniz işlemi gördüm microsoftun sitesinde burda sadece bir işlem söz konusu değilmi yoksa bu işlemi ard arda kullanabiliyor muyuz
31 Mart 2015 molcay Kıdemli Uzman (12,350 puan)   yorumladı
o konuda hiç bi tecrübem olmadı şuan vs de yok ki deneyeyimde yardımcı olayım kusura bakma
31 Mart 2015 severaltimes Stajyer (630 puan)   yorumladı
bi yöntem buldum şuan ya onu denedim oldu valla
 {
                Process cmd = new Process();
                cmd.StartInfo.RedirectStandardInput = true;
                cmd.StartInfo.RedirectStandardOutput = true;
                cmd.StartInfo.FileName = " cmd.exe";
                cmd.StartInfo.CreateNoWindow = true;
                cmd.StartInfo.UseShellExecute = false;
                cmd.Start();
                cmd.StandardInput.WriteLine("ip config");
                cmd.StandardInput.WriteLine("dir");
                cmd.StandardInput.WriteLine("ver");
                cmd.StandardInput.Flush();
                cmd.StandardInput.Close();
                Console.WriteLine(cmd.StandardOutput.ReadToEnd());
                cmd.Close();
}
3 Nisan 2015 molcay Kıdemli Uzman (12,350 puan)   yorumladı
sevindim yeni birşey daha öğrenmiş olduk
...