کار کردن با آرگومان های خط فرمان در 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به آرگومان های خط فرمان دسترسی دارید.

دسته بندی‌ها: 

دیدگاه‌ها

سلام-
درباره vbscript یک سوال داشتم
می خوام به جای این که نتایج دستورات به روی صفحه نشان داده بشه در یک متغیر سراسری قرار بگیره که بعدش بتونم از اون متغیر در محیط cmd استفاده کنم مثلا فایل 1.bat شامل دستور زیر است
call 1.vbs
echo %a% =a
که فایل 1.vbs شامل یک سری دستور است که خروجی نهایی به جای نمایش در صفحه در متغیر a ذخیر شود و سپس کنترل برنامه به خط بعدی رفته و محتوی متغیر a در صفحه داس نمایش داده میشود
درواقع ما فایل 1.bat را اجرا می کنیم که این فایل فایل 1.vbs را فراخوانی می کنند و با خروجی  1.vbs در ادامه کار میکند
می خواستم ببینم این انتساب خروجی به یک متغیر در زبان vbscript چگونه است؟
لطفا اگه ممکنه کمی سریعتر من کمی عجله دارم
shzaa123@gmail.com
با تشکر فراوان

افزودن دیدگاه جدید