سینتکس دستورات در پاورشل

منتشر شده در دسته : پاورشل

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

ساختار دستوری دستورات پاورشل

یک دستور را که قبلاً در داس با آن کار می‌کردید را به خاطر بیاورید . چنین ساختاری دارد :

dir *.* /s

در این ساختار دستوری از  دستورات پاورشل  ابتدا نام دستور وجود دارد که dir هست . سپس آرگومان *.* را داریم و در ادامه سوییچ s/ را داریم . یک مفهوم بسیار مشابهی را درون پاورشل هم داریم ولی ساختار متفاوتی دارد . ولی بهترین بخش آن این است که ساختار دستوری هرگز تغییر نمی‌کند . مهم نیست چه محصولی رو استفاده می‌کنید . چه شیرپوینت باشد یا اکسچینج ساختار کامندلت تغییری نمی‌کند . فقط بایستی ساختار دستوری و سینتکس آن را یاد بگیریم . خوب من این ساختار را با کد جعلی به صورت زیر نمایش می‌دهم :

 

Get-fake -param Arg -param -param arg,arg

بخش اول Get-fake کامندلت ما می‌باشد . در ادامه آن پارامترها param- و آرگومان ها arg می‌آیند . به یاد داشته باشید که پارامترها همیشه با علامت دش – آغاز می‌شوند . پارامترها نحوه عمل‌کرد کامندلت را تنظیم و بهینه می‌کنند . در ادامه پس از پارامتر ممکن است آرگومان بیاید شاید هم نیاید . برخی پارامترها آرگومان ندارند که این پارامترها را پارامترهای سوییچی می نامند و برخی پارامترها ممکن است چندین آرگومان داشته باشند . پس اگر یک پارامتر چند آرگومان داشت این آرگومان ها را با کاما از هم جدا می‌کنیم . این ساختار هرگز در پاورشل تغییر نمی‌کند و همیشه به همین صورت است . حالا این ساختارها را از کجا یاد می‌گیریم ؟ که یک کامندلت چه پارامترها و چه آرگومان هایی دارد ؟ از بخش سینتکس موجود در فایل‌های کمکی . خوب یک مثال واقعی را مشاهده کنیم تا روشن شویم . توجه کنید که چون می‌خواهیم پارامترها و تعریف پارامترها را مشاهده کنیم بایستی از سوییچ Detailed استفاده کنیم :

سینتکس دستورات در پاورشل

بخشی که دربارش صحبت می‌کردیم همین بخش SYNTAX (ساختار دستوری دستورات پاورشل) می‌باشد که در تصویر بالا مشاهده می‌کنید . اول از همه به این تصویر در بخش سینتکس نگاه کنید و ببینید که چند بار کامندلت Get-Service را مشاهده می‌کنید ؟ سه بار درسته ؟ دلیلش چیه ؟ دلیلش آن است که این‌ها سه ست پارامتری مختلف هستند . یعنی اینکه کامندلت Get-Service را به سه شیوه متفاوت می‌توان استفاده کرد . بر این اساس که حداقل یک پارامتر در این سینتکس ها متفاوت هستند . اگر به مورد اول در تصویر بالا نگاه کنید می‌بینید که سوییچ Name- در اولی وجود دارد و در دو ست پارامتری دیگر وجود ندارد . در سینتکس دومی DisplayName یگانه هست . در اولی و سومی وجود ندارد . و سومی InputObject را دارد .

خوب از کجا بفهمیم که یک پارامتر آرگومان می‌گیرد . هرجا این علامت بزرگ‌تر و کوچک‌تر را دیدیم یعنی پارامتر ما یک آرگومان می‌گیرد . سؤال مهم این است که چه نوع آرگومانی می‌گیرد . مثلاً در اینجا نوع آرگومان ما از نوع رشته ای یا همان string هست . این مقدار می‌تواند اینتجر هم باشد .
خوب حالا بگذارید یک مثال از اجرای دستور get-service به همراه گزینه هایش نشان دهم . خوب دستور get-service را اجرا کنید . توجه کنید که در این کامندلت ستونی با نام Name وجود دارد . یادتون می یاد پارامتری با نام name- وجود داشت . این ستون و مواردش اسامی خلاصه برای سرویس ها هستند . من یکی از این اسامی خلاصه را انتخاب می‌کنم و کپی می‌کنم . پس BITS که ما در اینجا انتخاب می‌کنیم یکی از اسامی کوتاه در ستون name‌ هست و پارامتر name- هم به دنبال این‌ها می‌باشد .

سینتکس دستورات در پاورشل

پس به جای اجرا دستور get-service و مشاهده همه سرویس های موجود این بار با استفاده از پارامتر name- فقط سرویس BITS را مشاهده کنیم .

سینتکس دستورات در پاورشل

خوب قابلیت بیشتری از نمایش فقط یک سرویس وجود دارد و از سینتکسی که قبلاً دیدیم مشخص است . خوب اول کامندلت سپس پارامتر name- وجود دارد چرا که دش اول آن آمده . این پارامتر یک آرگومان می‌گیرد چرا که در <> مشخص شده است و از نوع رشته ای است . ولی به علامت [] درون آرگومان از نوع رشته ای دقت کنید <[]string>

سینتکس دستورات در پاورشل
این کروشه ها را می‌بینید ؟ دقت کنید که کروشه های درون علامت بزرگ‌تر و کوچکتر را می‌گوییم . معنی این کروشه ها چیست ؟ یعنی اینکه این پارامتر می‌تواند بیش از یک آرگومان گرفته که آرگومان ها هم با کاما از هم جدا می‌شوند . همه پارامترها نمی‌توانند بیش از یک آرگومان را بگیرند . باید دقت کنید چرا که اگر فقط یک آرگومان گرفته و شما چند آرگومان را وارد کنید با پیام خطا مواجه می‌شوید . پس در اینجا پارامتر name- چند آرگومان می‌گیرد .

خوب حالا ببینیم که در عمل چگونه است . دستور get-service را به صورت زیر وارد می‌کنیم :

سینتکس دستورات در پاورشل

در دستور بالا دو آرگومان را وارد کردیم که این آرگومان ها نام سرویس ها هستند و با یک کاما از هم جدا می‌شوند . با اجرای این کامندلت دو سرویس bfe و bits به ما نشان داده می‌شوند .
خوب هنوز مانده است و این جایی است که می‌تواند کمی گیج‌کننده باشد پس بیشتر دقت کنید .

سینتکس دستورات در پاورشل

اگر به سینتکس در فایل‌های کمکی نگاه کنیم ، یکسری کروشه ها را می‌بینیم پارامترها و آرگومان ها را در بر گرفته‌اند . به یاد دارید که دستور get-service را می توانستیم به تنهایی و بدون هیچ آرگومانی و پارامتری وارد کنیم ؟! چرا ؟ به خاطر همین کروشه ها . این کروشه ها یعنی اینکه تمامی این آرگومان ها و پارامترها اختیاری هستند .

سینتکس دستورات در پاورشل

در ساختار اول دستوری ما هیچ پارامتر یا آرگومانی اجباری نیست . ولی به سینتکس دومی دقت کنید . به پارامتر DisplayName دقت کنید .

سینتکس دستورات در پاورشل

پس من اگر بخواهم از ساختار دستوری دومی استفاده کنم ، بایستی حتماً از این پارامتر DisplayName استفاده کنم و اجباری است . و این شیوه ای است که پارامترهای اجباری را شناسایی می‌کنید . ساختار دستوری دستورات پاورشل را شناختید .

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

صاحب امتیاز نت آموز : نویسنده , مدرس و متخصص در زمینه امنیت شبکه های رایانه ای

نظرات غیرمرتبط با محتوای این مطلب تایید نخواهند شد.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *