PDA

View Full Version : سوال: کار با cmd



HosseinProgrammer
یک شنبه 06 دی 1388, 11:02 صبح
سلام. 2 سوال داشتم. البته با یک موضوع:

1.میخواستم بدونم که چطور میشه دستوری را در cmd اجرا کرد البته در یک برنامه که به زبان سی شارپ نوشته شده است. یعنی چگونه می توان در سی شارپ با cmd کار کرد؟

2. پس از اجرای دستور در cmd میخوام اطلاعات موجود (چاپ شده) در صفحه ی cmd را بخوانم و در سی شارپ از آنها استفاده کنم.

با تشکر از شما

AliRezaPro
یک شنبه 06 دی 1388, 12:18 عصر
این کد را مشاهده بفرمایید
System.Diagnostics.Process Process3;
Process3 = new System.Diagnostics.Process();

cmd = "C:\\WINDOWS\\system32\\Net.exe";

Process3 = System.Diagnostics.Process.Start(cmd, "NET START \"SQLAgent$NETSDK\"");

Process3.WaitForExit();
Process3.Close();
و این کد
using System;

using System.Diagnostics;

namespace RedirectOutputExample{

class Program{

static void Main(){

Process p = new Process();

p.StartInfo = new ProcessStartInfo( "cmd", "/c \"dir c:\\\"" )

{

RedirectStandardOutput = true,

UseShellExecute = false,

CreateNoWindow = true

};

p.Start();

string output = p.StandardOutput.ReadToEnd();

p.WaitForExit();

Console.WriteLine(output);

Console.Read();

}}}
اینجا رو هم نگاه کنید

http://www.codeproject.com/KB/cs/Execute_Command_in_CSharp.aspx

http://www.codeproject.com/KB/cs/commandlineincsharp.aspx

HosseinProgrammer
یک شنبه 06 دی 1388, 20:19 عصر
ممنون از جوابتون. در مورد کد دومی که قرار دادید، مثلا اگر بخوام دستور زیر را اجرا کنم ، در رشته ی مربوطه چه چیزی باید بنویسم؟



c:\myFolder\a.exe

توجه: اگر برنامه ی a را اجرا کنیم خروجی دارد.

رشته ای که من نوشتم که البته کار نمیکند!

("cmd", "/c \"c:\\Flex\\a.exe\"" )

سوال دوم من هم توضیحی در مورد کد زیر است! اینکه یعنی چه سمی کالن نذاشته ، آکولاد باز کردید! این یعنی چی؟ انتهای هر دستور هم , گذاشته اید. تو MSDNنگاه کردم چنین چیزی توضیح داده نشده بود. (ببخشید اگه سوال پایه ای است!)



p.StartInfo = new ProcessStartInfo("cmd", "/c \"dir c:\\\"" )

{

RedirectStandardOutput = true,

UseShellExecute = false,

CreateNoWindow = true

};

HosseinProgrammer
دوشنبه 07 دی 1388, 10:34 صبح
آقا کسی نیست جواب مارو بده؟ عجله دارم!

SMRAH1
دوشنبه 07 دی 1388, 17:49 عصر
سلام
برای دربافت اطلاعات خروجی برنامه ،یک راه استفاده از فایل است.مثلا دستور

dir c:\ > 1.txt
باعث میشه که اطلاعات به جای نمایش روی صفحه به فایل 1.txt بره.
شما می تونید در هنگام اجرا یک نام فایل برای خروجی به خط دستور اضافه کنید و پس از پایان کار،فایل مورد نظر را باز کرده و اطلاعاتش رو بخونید

موفق باشید