উত্তর:
পাওয়ারশেল আসলে যেকোন কমা-বিচ্ছিন্ন তালিকাটিকে একটি অ্যারের হিসাবে বিবেচনা করবে:
"server1","server2"
সুতরাং @ এই ক্ষেত্রে isচ্ছিক। তবে সহযোগী অ্যারেগুলির জন্য, @ টি প্রয়োজনীয়:
@{"Key"="Value";"Key2"="Value2"}
অফিসিয়ালি, @ হলেন "অ্যারে অপারেটর"। পাওয়ারশেলের পাশাপাশি ইনস্টল করা ডকুমেন্টেশনে বা "সহ উইন্ডোজ পাওয়ারশেল: টিএফএম" এর মতো বইতে আপনি এটি সম্পর্কে আরও পড়তে পারেন যা আমি সহ-রচনা করেছি।
পাওয়ারশেল ভি 2 তে @ স্প্ল্যাট অপারেটরও ।
PS> # First use it to create a hashtable of parameters:
PS> $params = @{path = "c:\temp"; Recurse= $true}
PS> # Then use it to SPLAT the parameters - which is to say to expand a hash table
PS> # into a set of command line parameters.
PS> dir @params
PS> # That was the equivalent of:
PS> dir -Path c:\temp -Recurse:$true
উপরের প্রতিক্রিয়াগুলি বেশিরভাগ উত্তর সরবরাহ করার সময় এটি দরকারী - এমনকি এই প্রশ্নের দেরীতে - সম্পূর্ণ উত্তর সরবরাহ করতে, বুদ্ধিমানকে:
এরে উপ-অভিব্যক্তি (দেখুন about_arrays )
এমনকি সিঙ্গলটন বা নাল যেমন, মানটিকে অ্যারে হিসাবে জোর করে $a = @(ps | where name -like 'foo')
হ্যাশ ইনিশিয়ালাইজার (সম্পর্কে_হ্যাশ_ টেবিল দেখুন )
কী-মান যুক্তগুলির সাথে একটি হ্যাশ টেবিল সূচনা করে eg
$HashArguments = @{ Path = "test.txt"; Destination = "test2.txt"; WhatIf = $true }
Splatting (দেখুন about_splatting )
আসুন আপনি স্বতন্ত্রভাবে পৃথকভাবে গণনা করা প্যারামিটারের চেয়ে অ্যারে বা হ্যাশ-টেবিলের পরামিতিগুলির সাথে একটি সেমিডলেটটি ডাকতে পারেন, যেমন হ্যাশ টেবিলের ঠিক উপরে উপরে, Copy-Item @HashArguments
এখানে স্ট্রিংগুলি ( প্রায়_কোটিং_রুলস দেখুন )
আসুন আপনি সহজেই এম্বেড করা উক্তি সহ স্ট্রিংগুলি তৈরি করুন, সাধারণত মাল্টি-লাইন স্ট্রিংয়ের জন্য ব্যবহৃত হয়, যেমন:
$data = @"
line one
line two
something "quoted" here
"@
কারণ এই ধরণের প্রশ্ন ( পাওয়ারশেলের মধ্যে 'x' স্বরলিপিটি কী বোঝায়? ) স্ট্যাকওভারফ্লোতে এবং অনেক পাঠকের মন্তব্যে এতটা সাধারণ, আমি কেবল সরল- টাল ডটকম-এ প্রকাশিত পাওয়ারশেল বিরামচিহ্নের একটি অভিধান রেখেছি। @ এর পাশাপাশি% এবং # এবং $ _ এবং সমস্ত পড়ুন? পাওয়ারশেল বিরাম চিহ্নের সম্পূর্ণ গাইড এ এবং আরও অনেক কিছু । নিবন্ধের সাথে সংযুক্ত এই প্রাচীরচর্ট যা আপনাকে একটি একক শীটে সমস্ত কিছু দেয়:
আপনি @()
কী ফিরে পাবেন তা একক আইটেমের চেয়ে অ্যারে নয় তা নিশ্চিত করতে আপনি একটি সেমিডলেট (বা পাইপলাইন) এর আউটপুটও গুটিয়ে রাখতে পারেন।
উদাহরণস্বরূপ, দির সাধারণত একটি তালিকা ফেরত দেয় তবে বিকল্পগুলির উপর নির্ভর করে এটি কোনও একক জিনিস ফেরত দিতে পারে। যদি আপনি পূর্বাংশ-বস্তুর সাথে ফলাফলগুলি পুনরাবৃত্তি করার পরিকল্পনা করে থাকেন তবে আপনাকে অবশ্যই একটি তালিকা ফিরে পেয়েছে তা নিশ্চিত করতে হবে। এখানে একটি স্বীকৃত উদাহরণ:
$results = @( dir c:\autoexec.bat)
আরও একটি জিনিস ... একটি খালি অ্যারে (একটি ভেরিয়েবল আরম্ভ করতে চাই) চিহ্নিত করা হয় @()
।
স্প্ল্যাটিং অপারেটর
একটি অ্যারে তৈরি করতে, আমরা একটি ভেরিয়েবল তৈরি করে অ্যারে নির্ধারণ করি। অ্যারেগুলি "@" প্রতীক দ্বারা চিহ্নিত করা হয়েছে। আসুন উপরে আলোচনাটি নিয়ে একাধিক রিমোট কম্পিউটারের সাথে সংযোগ স্থাপনের জন্য একটি অ্যারে ব্যবহার করুন:
$strComputers = @("Server1", "Server2", "Server3")<enter>
তারা অ্যারে এবং হ্যাশগুলির জন্য ব্যবহৃত হয়।
পাওয়ারশেল টিউটোরিয়াল:: ডেটা জমা, পুনর্বিবেচনা এবং সংশোধন করুন