PDA

View Full Version : ارسال یک دستور به CMD



xrezax
چهارشنبه 31 شهریور 1389, 22:52 عصر
چطوری به وسیله ویژوال یک دستوری را به CMD به صورت مخفی ارسال کنم و اونو توی یک تکست سیو کنم ؟؟؟؟ ( یعنی صفحه سیاه CMD دیده نشه )

xxxxx_xxxxx
پنج شنبه 01 مهر 1389, 07:00 صبح
سلام،
دستورات رو داخل فایل bat. بنویسید و این فایل رو با دستور Shell و مد vbHide اجرا کنید.

چی رو میخواید تو یک تکست save کنید؟

xrezax
پنج شنبه 01 مهر 1389, 18:43 عصر
میشه با پروژه های وی بی یک توضیحی بدین ممنون میشم.
مثلاً می خوام ping yahoo.com -t رو به صورت مخفی به DMD بفرستم و پاسخشو توی txt سیو کنم

saeedvir
جمعه 02 مهر 1389, 11:46 صبح
بفرما :

این دستور را داخل cmd اجرا کنید :


ping www.yahoo.com >>c:\saeed.txt

xxxxx_xxxxx
شنبه 03 مهر 1389, 11:32 صبح
این کاری که تو پست 2 گفته شد، با دستور پست 4 برای ذخیره خروجی دستور:


Open "C:\Command.bat" For Output As #1
Print #1, "ping yahoo.com -t >C:\Result.txt"
Close #1

Shell "C:\Command.bat", vbHide

xxxxx_xxxxx
شنبه 03 مهر 1389, 11:55 صبح
برای Ping کردن میتونید این کار رو هم انجام بدید و خروجی رو در یک متغیر داشته باشید. این کار بهتر از روش قبلی هست. روش قبلی اجرای یک فایل هست که هزینه بیشتری داره و برای اجرای چندین دستور متوالی پیشنهاد میشه. اما این کار برای Ping کردن اصولی تر هست:


Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("ping.exe yahoo.com")
Result = objExec.StdOut.ReadAll
MsgBox Result

Slytherin
چهارشنبه 07 مهر 1389, 04:05 صبح
این برنامه بیشتر دستورات CMD رو تو خودش دریافت و اجرا می کنه :چشمک:

xrezax
چهارشنبه 07 مهر 1389, 21:50 عصر
من از جواب شماره 4 که آقای xxxxx_xxxxx (http://barnamenevis.org/forum/member.php?u=46030) که زحمتشو کشیدن استفاده می کنم. اما یه مشکلی که داره وقتی می خوام درایو عوض کنم واسه دیدن dir مثلاً درایو e هر کاری کردن نتیجه ای نگرفتم.
آیا راهی هست که مثلاً توی text1 دستور رو صادر کنم و توی text2 رویدادو ببینم. مثلاً برم توی درایو e و dir اونو ببینم.
(http://barnamenevis.org/forum/member.php?u=46030)

xxxxx_xxxxx
پنج شنبه 08 مهر 1389, 16:58 عصر
اون روش برای دستورات خارجی DOS کاربرد داره. Ping جزو دستورات خارجی هست اما Dir از دستورات داخلی هست.
حالا چرا برای Dir میخواید از دستورات DOS استفاده کنید؟ خودتون میتونید با یک حلقه Dir رو بسازید:


Dim fName As String
fName = Dir("E:\", vbDirectory)
Do While fName <> ""
Print fName
fName = Dir()
Loop

xrezax
پنج شنبه 08 مهر 1389, 18:17 عصر
من با این برنامه محتوای یک درایو لیست می کنم می خوام جلوی هر فایل نوع فایلو بنویسه ( یعنی اگه فایلی به نام reza.txt داریم جلوش بنویسه txt

سوال دوم اینه که بجای print توی یک تکست لیست بشن محتویات

xxxxx_xxxxx
پنج شنبه 08 مهر 1389, 19:35 عصر
سلام،
موضوع تاپیک در رابطه با اجرای دستورات cmd هست. سعی کنیم از موضوع تاپیک منحرف نشیم. اگر در مورد مسائل دیگر سؤالی دارید در تاپیک دیگری مطرح کنید.

با تشکر/

xrezax
پنج شنبه 08 مهر 1389, 23:09 عصر
دیدم این سوال مرتبط با پاسخ شماست مجبور شدم همینجا مطرح کنم.
دیگه تکرار نمی شه.
فقط دوستان اگر کسی جواب این سوالمو داره ممنون میشم کمکی کنه.

MEHR_2008
چهارشنبه 17 اسفند 1390, 12:04 عصر
اين راه حل واقعا عالي بود و مشكل من را حل كرد واقعا ممنونم

این کاری که تو پست 2 گفته شد، با دستور پست 4 برای ذخیره خروجی دستور:


Open "C:\Command.bat" For Output As #1
Print #1, "ping yahoo.com -t >C:\Result.txt"
Close #1

Shell "C:\Command.bat", vbHide