.bat dosyasından girilen bilgiler C#'a göre nasıl yapılır?

yessure

Centipat
Katılım
14 Ağustos 2023
Mesajlar
72
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Başlıkta yazdığım gibi .bat dosyasına girdiğim bilgileri yaptığım form uygulamasında girerek bat dosyasını çalıştırmasını istiyorum. Örneğin .bat dosyasında "Kullanıcı adınız :" kısmını kaldırıp c# ile yaptığım form uygulamasına "Kullanıcı adınız :" kısmını ekleyerek kullanıcı burayı doldurduğunda butona tıkladığımda bat dosyasını çalıştırmasını istiyorum. Böyle bir şey mümkün mü? Mümkünse nasıl?
 
string batFilePath = @"C:\path\to\directory\myscript.bat";
.bat dosyasını buttona tıklayınca açmak değil olay. Bat dosyasında girdiğim bilgileri textboxa yazacağım. O şekilde açacak

string batFilePath = @"C:\path\to\directory\myscript.bat";
Ayrıca batı direk açtırmaya çalıştırdığımda çalışmıyor.
 
XY Problemine ornek bir konu olmus. Sizin asil aradiginiz sey bat dosyasina disardan parametre gondermek. Bunun icin de .bat dosyasini modifiye edip "%2-9" araligindan parametreleri almaniz ve islemeniz gerek. C#'tan batch'i calisitirirken de bu parametreleri vermeniz gerek. Ornegin path = "path/to/bat.bat exampleParam" burada exampleParam yerine gondermek istediginiz parametreyi gireceksiniz.
 
Başlıkta yazdığım gibi .bat dosyasına girdiğim bilgileri yaptığım form uygulamasında girerek bat dosyasını çalıştırmasını istiyorum. Örneğin .bat dosyasında "Kullanıcı adınız :" kısmını kaldırıp c# ile yaptığım form uygulamasına "Kullanıcı adınız :" kısmını ekleyerek kullanıcı burayı doldurduğunda butona tıkladığımda bat dosyasını çalıştırmasını istiyorum. Böyle bir şey mümkün mü? Mümkünse nasıl?
Öncelikle bu arkadaşın dediği gibi olabilir:
string batFilePath = @"C:\path\to\directory\myscript.bat";
Yani şöyle
C#:
Process.Start("uygulama/dizini/bilmemNe.bat")
Ama bat ve cmd gibi dosyalar 32bit projelerde yani AnyCPU ile çalışmaz.
Siz onu 64Bit olarak değiştirdiğinizde çalışır bat dosyaları ama ben AnyCPU olarak kullanmak istiyorum diyorsanız:
C#:
Process cmd = new Process();
ProcessStartInfo cmdStartInfo = new ProcessStartInfo();
cmd.Verb = "runas"; // BU BÖLÜM CMD'ye YÖNETİCİ izni verir. Ama eğer uygulamanızın yönetici izni yoksa UAC ekranı gelir (izin ister)
cmd.ShowInTaskBar = false; // Görev çubuğunda görünmez
cmd.Argument = "/c " + "cmd kodlarınız" // CMD kodunu yazın. '/c ' kodu, kod çalıştıktan sonra otomatik kapanmasını sağlar '/k ' yaparsanız kapanmaz.
    // BİLGİ : Kodların arasına '&' koymalısınız. İster birleşik ister ayrı. Örneğin:
    // "/c color a&cls"
    // "/c " + "color a&cls"
    //         VEYA karışık olmaması için
    // "/c " + "color a" + "&" + "cls"
    // "/c " + "color a&" + "cls"
    // bu bölüm için "Her yiğidin yoğurt yiyişi farklıdır." diyebiliriz.
// diğer infolara bakabilirsiniz.
cmd.StartInfo = cmdStartInfo;
cmd.Start(); // Başlatır.
cmd.WaitForExit(); // CMD kapanana kadar diğer kodlar/uygulama çalışmaz. (Multi tasking yoksa)
 

Technopat Haberler

Yeni konular

Geri
Yukarı