আপনি চাকা পুনরুদ্ধার করছেন। সাধারন PowerShell স্ক্রিপ্ট দিয়ে শুরু পরামিতি আছে -
মত,script.ps1 -server http://devserver
তারপরে আপনি param
ফাইলটির প্রারম্ভিক অংশে সেগুলি পরিচালনা করুন ।
আপনি আপনার প্যারামগুলিতে ডিফল্ট মানগুলিও বরাদ্দ করতে পারেন, যদি উপলভ্য না হয় তবে কনসোল থেকে সেগুলি পড়ুন বা স্ক্রিপ্টের সম্পাদনা বন্ধ করুন:
param (
[string]$server = "http://defaultserver",
[Parameter(Mandatory=$true)][string]$username,
[string]$password = $( Read-Host "Input password, please" )
)
স্ক্রিপ্টের ভিতরে আপনি সহজেই পারেন
write-output $server
যেহেতু সমস্ত প্যারামিটারগুলি স্ক্রিপ্ট স্কোপে উপলব্ধ ভেরিয়েবল হয়।
এই উদাহরণস্বরূপ, $server
স্ক্রিপ্টটি ছাড়াই কল করা হলে এটি একটি ডিফল্ট মান পায়, আপনি -username
পরামিতি বাদ দিলে স্ক্রিপ্টটি বন্ধ হয়ে যায় এবং -password
বাদ পড়লে টার্মিনাল ইনপুট জিজ্ঞাসা করে ।
আপডেট: আপনি পাওয়ারশেল স্ক্রিপ্টে একটি "পতাকা" (একটি বুলিয়ান ট্রু / মিথ্যা পরামিতি) পাস করতেও পারেন। উদাহরণস্বরূপ, আপনার স্ক্রিপ্টটি কোনও "বল" গ্রহণ করতে পারে যেখানে স্ক্রিপ্টটি আরও যত্নবান মোডে চালিত হয় যখন শক্তি ব্যবহার করা হয় না।
এর জন্য কীওয়ার্ডটি [switch]
প্যারামিটারের ধরণ:
param (
[string]$server = "http://defaultserver",
[string]$password = $( Read-Host "Input password, please" ),
[switch]$force = $false
)
স্ক্রিপ্টের ভিতরে তখন আপনি এটির সাথে এটি ব্যবহার করবেন:
if ($force) {
//deletes a file or does something "bad"
}
এখন, স্ক্রিপ্টটি কল করার সময় আপনি এই জাতীয় স্যুইচ / ফ্ল্যাগ প্যারামিটার সেট করতে চান:
.\yourscript.ps1 -server "http://otherserver" -force
আপনি যদি স্পষ্টভাবে বলতে চান যে পতাকাটি সেট করা নেই, তবে এর জন্য একটি বিশেষ বাক্য গঠন রয়েছে
.\yourscript.ps1 -server "http://otherserver" -force:$false
প্রাসঙ্গিক মাইক্রোসফ্ট ডকুমেন্টেশনের লিঙ্কগুলি (পাওয়ারশেল 5.0 এর জন্য; সংস্করণ 3.0 এবং 4.0 লিঙ্কগুলিতেও উপলব্ধ):