PDA

View Full Version : اجرای دستورات dos از دلفی



sahar_ah
سه شنبه 29 اسفند 1385, 17:58 عصر
سلام
من یه برنامه دارم مینویسم و باید از طریق دلفی برنامه CMD رو اجرا کنم و یه سری دستورات رو به اون بفرستم.و یا اینکه بدون اینکه cmd اجرا بشه دستورات رو به اون پاس بدم و اجرا کنم
خواستم ببینم چطور میشه

Hamid_PaK
سه شنبه 29 اسفند 1385, 20:10 عصر
اگه فقط اجرا منظورت هست که :


WinExec('cmd -c dir', SW_SHOW);

babak869
سه شنبه 29 اسفند 1385, 22:14 عصر
من فکر میکنم منظور ایشون نوشتن دستور در داس هستش از طریق دلفی . یعنی ارسال پارامتر بهcmd و اجرا از طریق دلفی!
موفق باشید

zman123456
چهارشنبه 01 فروردین 1386, 10:18 صبح
ولی من فکر می کنم می خوان از توی دلفی دستورات داس را اجرا کنند چه با cmd و چه بدون Cmd . من خودم با Shell کار می کنم و توابع API.

sahar_ah
چهارشنبه 01 فروردین 1386, 16:27 عصر
از هم تون ممنونم
منظورم اینه که میخوام از طریق دلفی بدون اجرای cmd یه دستور بهش بفرستم مثلا dir .البته میخوام دستورات بزرگتری بنویسم فقط نمیدونم چطور از تو دلفی میتونم دستورات رو اجرا کنم.انگار که داری توی cmd دستور مینویسی و اینتر میزنی تا اجرا شه
مرسی

Bahmany
چهارشنبه 01 فروردین 1386, 16:59 عصر
سلام
در حال عادی هر دستوری که با کد WinExec اجرا می کنی بعنوان دستورات تحت داس اجرا میشن.

dkhatibi
پنج شنبه 02 فروردین 1386, 00:05 صبح
شاید لازم باشد یک فایل bat ایجاد کنید و بعد با Shellexecute و یا دستورات گفته شده فایل مورد نظر را اجرا کنید تا دستورات پشت سر هم اجرا گردند.

sahar_ah
پنج شنبه 02 فروردین 1386, 00:16 صبح
شاید لازم باشد یک فایل bat ایجاد کنید و بعد با Shellexecute و یا دستورات گفته شده فایل مورد نظر را اجرا کنید تا دستورات پشت سر هم اجرا گردند.

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

dkhatibi
پنج شنبه 02 فروردین 1386, 00:42 صبح
مطمئنا با ایجاد فایلهای متنی در دلفی آشنا هستید. اگر چنین است کار ساده ای در پیش دارید. دستوراتی که می خواهید اجرا کنید را درون یک فایل به طور خط به خط بنویسید. نام فایل را با پسوند Bat انتخاب کنید. از نامهایی که شبیه دستورات ویندوز هستن هم استفاده نکنید. فرض کنید فایلی به نام a.bat ساختید.
فایل ایجاد شده را close کرده و دستور زیر را برای اجرای آن به کار برید.


ShellExecute(0, '', PChar('a.bat') , '', '', 0);

sahar_ah
پنج شنبه 02 فروردین 1386, 14:09 عصر
سلام
مرسی
من میخواه این دستور رو در داس بنویسم و اجرا کنم.طبق گفته شما در فایل بت باید چی بنویسیم؟



attrib +h +s D:/myfolder

خیلی ممنون

Hamid_PaK
پنج شنبه 02 فروردین 1386, 14:23 عصر
در حال عادی هر دستوری که با کد WinExec اجرا می کنی بعنوان دستورات تحت داس اجرا میشن.
نه دستورات درونی CommandShell بطور کلی هم از طریق Batch فایل و هم از طریق CMD /C می توان دستورات درونی DOS را اجرا کرد ...


*** Batch File Content {
@echo off
echo ------------------------------------
echo Sample Command Shell By Batch File
echo ------------------------------------
echo.
echo write the files list of drive c ...
echo target : %1
dir c:\ > %1
echo -done.
echo.
echo press any key to exit ...
pause >nul
cls
exit
rem write these lines to `test.bat` and save it on program dir ...
}

*** Delphi Procedure {
begin
// files list of drive c by run a batch file.
WinExec('test.bat Drive(C)_FileList1.txt', SW_SHOW);
// files list of drive c by straight delphi command.
WinExec('cmd /c "dir c:\ > Drive(C)_FileList2.txt"', SW_HIDE);
// but this line dosn't work !!!
WinExec('dir > Drive(C)_FileList3.txt', SW_HIDE);
// set the `system and hidden` attribute to the current path.
WinExec('cmd /c attrib +s +h .', SW_HIDE);
end;
// WinExec or ShellExecute dosen't have any different ...
}


یا حق ...

dkhatibi
پنج شنبه 02 فروردین 1386, 22:23 عصر
به عبارت ساده تر


var
f:textfille;
begin
assignfile(f,'a.bat');
writeln(f,attrib +h +s D:/myfolder);
closefile(f(;
Shellexecute(....

pouria2013
پنج شنبه 20 تیر 1392, 13:01 عصر
با سلام
می خواستم بپرسم برای اینکه دستور زیر اجرا بشه باید چه کرد؟؟؟؟؟؟؟؟
COPY c:\nc D:\bp
ممنون می شم راهنمایی کنین

BORHAN TEC
شنبه 05 مرداد 1392, 21:26 عصر
سلام

با سلام
می خواستم بپرسم برای اینکه دستور زیر اجرا بشه باید چه کرد؟؟؟؟؟؟؟؟
COPY c:\nc D:\bp
ممنون می شم راهنمایی کنین
بنده، شخصاً برای این کارها استفاده از کامپوننت TJvCreateProcess موجود در مجموعه کامپوننت JVCL رو توصیه می کنم.
موفق باشید...

pouria2013
دوشنبه 28 مرداد 1392, 15:22 عصر
از کجا بگیرم اگه میشه برام بفرستین
pgpouria@hotmail.com
ممنونم