کار کردن با آرگومان های خط فرمان در VBScript

[quote]

یه سوال ؟
فرض کنید ما یه برنامه با VBScript نوشتیم بعدش اون رو کامپایلش میکنیم ! (هم با vbsedit میشه هم با ScriptCryptor)
آیا امکانش هست که تو VBScript از Command line استفاده کرد؟
مثلا" اسم فایل ما Project.exe هست , آیا میشه با دستور زیر یک قطعه کد یا sub به خصوص رو اجرا کرد
Project.exe /command

[/quote]

زبان WScript در ویندوز به دو طریق می تواند اجرا شود:

  1. روش اول این است که برنامه را در یک فایل با پسوند vbs ذخیره کنید و سپس فایل را Double Click کنید. در این صورت، فایل توسط برنامه ای به نام Microsoft ® Windows Based Script Host اجرا می شود. نام فایل این برنامه wscript.exe است. در این روش، برنامه به صورت مخفیانه اجرا می شود و فقط از طریق کادر های پیغام گرافیکی (MsgBox, InputBox) می تواند با کاربر ارتباط برقرار کند.
  2. روش دوم این است که برنامه ی VBScript را در خط فرمان اجرا کنیم. برای این منظور، دیگر از wscript.exe استفاده نمی کنیم. به جای آن از cscript.exe استفاده می کنیم که موتور VBScript در خط فرمان است. در این روش، برنامه ی VBScript می تواند از طریق خط فرمان با کاربر محاوره داشته باشد.

cscript C:\path\to\my\script.vbs

در دستور بالا (که باید در CMD اجرا شود) فایل C:\path\to\my\script.vbs توسط برنامه ی cscript در خط فرمان اجرا می شود.

در این جا، به اجرای برنامه در خط فرمان (روش دوم) می پردازیم.


هنگامی که می خواهید یک اسکریپت را در خط فرمان اجرا کنید، ممکن است در ادامه ی نام اسکریپت، کلمات دیگری را هم تایپ کنید. به این کلمات اضافی، آرگومان های خط فرمان می گویند.
در صورتی که با ابزار های خط فرمانی کار کرده باشید، حتما با آرگومان های خط فرمان آشنایی دارید. به طور مثال برنامه ی Ping.exe یک برنامه ی خط فرمانی است. این برنامه حد اقل به یک آرگومان نیاز دارد که آدرس IP ی کامپیوتر مورد نظر جهت پینگ است:

Ping 4.2.2.4

همان طور که می بینید، 4.2.2.4 در واقع یک آرگومان خط فرمان است که برنامه ی Ping.exe ارسال شده است.

اسکریپت ها هم می توانند آرگومان خط فرمان داشته باشند. دلیل این است که ممکن است بخواهیم یک اسکریپت یک سری ورودی ها را از کاربر بگیرد و بر اساس آن ها کارش را انجام دهد.
مثلا می خواهیم برنامه ای را بنویسیم که دو تا عدد را در خط فرمان دریافت کند و حاصل جمع آن دو تا را در خروجی چاپ کند. یعنی برنامه ی با این صورت اجرا شود:

Add.vbs  5  7

و عدد 12 که حاصل جمع 5 و 7 است را چاپ کند. در مثال فوق، اعداد 5 و 7 به عنوان دو تا آرگومان خط فرمان به Add.vbs ارسال شده اند و در برنامه ی Add.vbs به آن ها دسترسی داریم.

نکته:
آرگومان های خط فرمان با یک یا چند space باید از هم جدا شوند. در مثال فوق هم میبینید که بین 5 و 7 یک فاصله وجود دارد. در صورتی که در داخل یک آرگومان، یک فاصله وجود داشته باشد، به عنوان دو تا آرگومان در نظر گرفته می شود. برای جلوگیری از این مسئله، کافی است آرگومان هایی که شامل فاصله هستند را در داخل کوتیشن قرار دهید.

در داخل اسکریپت ما، آرگومان های خط فرمان در درون کلکسیون WshArguments ذخیره شده اند. برای دسترسی به این کلکسیون، باید از خصوصیت Arguments از آبجکت WScript استفاده کرد.
این مطلب در شکل زیر به تصویر کشیده شده است:

تصویر آموزشی

 

بعلاوه، همان طور که میبینید، WSH آرگومان های خط فرمان را، بر اساس فرمت آرگومان، به دو دسته ی WshNamed و WshUnnamed تقسیم بندی می کند.

آرگومان های خط فرمان چگونه ذخیره می شوند و چگونه فیلتر و دسته بندی می شوند

هنگامی که شما یک اسکریپت را با آرگومان های خط فرمان اجرا میکنید، در داخل اسکریپت از طریق کلکسیون WshArgumentsبه آرگومان های خط فرمان دسترسی دارید.

مطالب مرتبط:

نظرات شما

قسمت نظرات با استفاده از سرویس دیسکاس پیاده سازی شده است. متاسفانه این سرویس از داخل ایران قابل دسترس نیست. لطفا از آی پی خارجی استفاده کنید.