View Full Version : سوال: Run کردن فایل Bat در VB?
boveiryghasem
یک شنبه 18 اردیبهشت 1390, 09:40 صبح
میخام یک فایل Bat رو داخل برنامه Run کنم.؟
boveiryghasem
یک شنبه 18 اردیبهشت 1390, 09:50 صبح
البته من با کد:Shell ("D:\Dir.bat") تست کردم جواب داد ولی وقتی مسیر فایل رو دسکتاپ میدم خطا میده؟
محسن واژدی
یک شنبه 18 اردیبهشت 1390, 11:16 صبح
سلام علیکم
تابع Shell در vb6 اصولا" فایل های اجرایی را اجرا میکند به عبارتی قادر به اجرای مستقل اسنادی نظیر BAT نمیباشد، برای اجرای اینگونه فایل ها بایستی الگوی دستوری را بصورت زیر وارد کنید:
Shell "EXE_FILE DOC_FILE"
EXE_FILE: مسیر فایل اجرایی
DOC_FILE: مسیر سند
نمونه (جهت اجرای فایل های bat
Shell "cmd C:\bat"
البته من با کد:Shell ("D:\Dir.bat") تست کردم جواب داد ولی وقتی مسیر فایل رو دسکتاپ میدم خطا میده؟
چه خطایی میدهد یعنی متن پیام خطا؟
البته بیشتر اوقات خطای "File not found" میدهد که یا بدلیل موجود نبودن فایل یا نادرست تایپ شدن مسیر فایل هست
boveiryghasem
یک شنبه 18 اردیبهشت 1390, 11:50 صبح
پیغام Run-time error '5':
Invalid procedure call or agrument
محسن واژدی
یک شنبه 18 اردیبهشت 1390, 12:09 عصر
به تصویر زیر نگاه کنید ممکن است مقدار آرگومان دوم shell نادرست باشد چون در اینصورت خطای شماره 5 میدهد
موفق باشید
Mr'Jamshidy
یک شنبه 18 اردیبهشت 1390, 13:02 عصر
سلام علیکم
تابع Shell در vb6 اصولا" فایل های اجرایی را اجرا میکند به عبارتی قادر به اجرای مستقل اسنادی نظیر BAT نمیباشد، برای اجرای اینگونه فایل ها بایستی الگوی دستوری را بصورت زیر وارد کنید:
Shell "EXE_FILE DOC_FILE"
EXE_FILE: مسیر فایل اجرایی
DOC_FILE: مسیر سند
نمونه (جهت اجرای فایل های bat
Shell "cmd C:\bat"
با تشکر از mohsenvj عزیز
محسن جان ببخشید که جسارت کردم و کد شما رو اصلاح کردم
خوب کدی آقا محسن براتون گزاشتن کاملا درسته اما یکی از آرگوماناش کمه که برات کاملش میکنم
Shell "cmd /c FILEADDRESS"
به جای FILEADDRESS آدرس فایل مورد نظر رو بنویس
boveiryghasem
یک شنبه 18 اردیبهشت 1390, 13:49 عصر
از توجه شما سپاس گذارم ولی مشکل حل نشد ببنید من میخام بجای دستور mkdir از یک فایل bat استفاده کنم (چون تعداد پوشه ها زیاد و تو در تو هستش) که این فایل bat در مسیر"C:\Documents and Settings\user\Desktop" هست.اولش که به فضاهای خالی بین Documents, and settings گیر میداد که بعدش با گذاشتن سه """ اول و آخر دستورم مشکل حل شد و فایل هم اجرا میشه ولی هیچ پوشه ای نمی سازه این در صورتی هست که با دابل کلیک کردن بر روی فایل پوشه ها رو می سازه و مشکلی نیست.
محسن واژدی
یک شنبه 18 اردیبهشت 1390, 15:34 عصر
نمونه سورس زیر را بررسی کنین
این سورس یک فایل bat با نام mkdir را توسط تابع Shell اجرا میکند که در پایان تعدادی فولدر در مسیر "C:\1" ایجاد میشود
موفق باشید
Mr'Jamshidy
یک شنبه 18 اردیبهشت 1390, 18:38 عصر
دوست عزیز این کار شما مثل این میمونه که لقمه رو دور سرت بچرخونی
برای ساخت فولدر تو در تو راه زیاده یکیش استفاده از Reference: Microsoft Scripting Runtime
در موردش جشتجو کن حتما پیدا میکنی
استفاده از CMD به هر دلیلی کار خیلی خیلی مبتدی و در برنامه نویسی های تجاری دور از عقلیه
از بابت لحنم منو ببخشید اما دارم جدی میگم.
حالتی رو در نظر بگیرید که توی سیستم هدف که قراره این برنامه اجرا بشه CMD غیر فعال شده باشه حالا یا توسط ویروس یا توسط ادمین اون کامپیوتر
حالا نه CMD کار میکنه و نه برنامه هایی که تحت CMD کار میکنن
باز هم بابت لحنم منو ببخشید
موفق باشید
محسن واژدی
یک شنبه 18 اردیبهشت 1390, 20:55 عصر
بله صحیح میفرمائید حتی APIهایی نیز وجود دارند که عمل ایجاد پوشه های تودرتو را بصورت حرفه ای برعهده دارند (MakeSureDirectoryPathExists,CreateDirectoryEx)، در واقع این سورس فقط یک نمونه است در پاسخ به مشکل جناب boveiryghasem که در پست شماره #7 مشکلشان را در مورد استفاده از فایل های bat مطرح کرده بودند و فقط نحوه ی اجرای صحیح یک فایل BAT را نشان میدهد
موفق باشید
Mr'Jamshidy
یک شنبه 18 اردیبهشت 1390, 23:09 عصر
بله صحیح میفرمائید حتی APIهایی نیز وجود دارند که عمل ایجاد پوشه های تودرتو را بصورت حرفه ای برعهده دارند (MakeSureDirectoryPathExists,CreateDirectoryEx)، در واقع این سورس فقط یک نمونه است در پاسخ به مشکل جناب boveiryghasem که در پست شماره #7 مشکلشان را در مورد استفاده از فایل های bat مطرح کرده بودند و فقط نحوه ی اجرای صحیح یک فایل BAT را نشان میدهد
موفق باشید
دوست گرامی منم از سورس شما ایرادی نگرفتم (یعنی جرات همچین جسارتی رو ندارم)
من دیدم این دوستمون این کار رو برای ساخت فولدر تو در تو میخواد گفتم بجای این همه دنگ و فنگ از ساده ترین روش استفاده کنه نه از روش های منسوخ شده
محسن واژدی
یک شنبه 18 اردیبهشت 1390, 23:51 عصر
دوست گرامی منم از سورس شما ایرادی نگرفتم (یعنی جرات همچین جسارتی رو ندارم)
من دیدم این دوستمون این کار رو برای ساخت فولدر تو در تو میخواد گفتم بجای این همه دنگ و فنگ از ساده ترین روش استفاده کنه نه از روش های منسوخ شده
سلام علیکم
اختیار دارید، انشاء الله موفق باشید
یاعلی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.