পাওয়ারসেলে "@" প্রতীক কী করবে?


112

অ্যারে আরম্ভ করার জন্য আমি পাওয়ারসেলের @ প্রতীকটি দেখেছি। @ প্রতীকটি ঠিক কী বোঝায় এবং এটি সম্পর্কে আমি আরও কোথায় পড়তে পারি?

উত্তর:


81

পাওয়ারশেল আসলে যেকোন কমা-বিচ্ছিন্ন তালিকাটিকে একটি অ্যারের হিসাবে বিবেচনা করবে:

"server1","server2"

সুতরাং @ এই ক্ষেত্রে isচ্ছিক। তবে সহযোগী অ্যারেগুলির জন্য, @ টি প্রয়োজনীয়:

@{"Key"="Value";"Key2"="Value2"}

অফিসিয়ালি, @ হলেন "অ্যারে অপারেটর"। পাওয়ারশেলের পাশাপাশি ইনস্টল করা ডকুমেন্টেশনে বা "সহ উইন্ডোজ পাওয়ারশেল: টিএফএম" এর মতো বইতে আপনি এটি সম্পর্কে আরও পড়তে পারেন যা আমি সহ-রচনা করেছি।


12
নীচে জেফরি স্নোভারের উত্তরটি পরীক্ষা করে দেখুন নিশ্চিত করুন ... @ কেবলমাত্র অ্যারে শনাক্তকারীর চেয়ে বেশি।
এরিক শুনোভার

115

পাওয়ারশেল ভি 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

1
এটি আমি যা খুঁজছিলাম: এই অপারেটরটি অ্যাজুরে রিসোর্স গ্রুপ ডিপ্লোমেন্ট স্ক্রিপ্টগুলিতে স্প্ল্যাট প্রসঙ্গে ব্যবহৃত হয়।
অ্যালেক্স মার্শাল

57

উপরের প্রতিক্রিয়াগুলি বেশিরভাগ উত্তর সরবরাহ করার সময় এটি দরকারী - এমনকি এই প্রশ্নের দেরীতে - সম্পূর্ণ উত্তর সরবরাহ করতে, বুদ্ধিমানকে:

এরে উপ-অভিব্যক্তি (দেখুন 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' স্বরলিপিটি কী বোঝায়? ) স্ট্যাকওভারফ্লোতে এবং অনেক পাঠকের মন্তব্যে এতটা সাধারণ, আমি কেবল সরল- টাল ডটকম-এ প্রকাশিত পাওয়ারশেল বিরামচিহ্নের একটি অভিধান রেখেছি। @ এর পাশাপাশি% এবং # এবং $ _ এবং সমস্ত পড়ুন? পাওয়ারশেল বিরাম চিহ্নের সম্পূর্ণ গাইড এ এবং আরও অনেক কিছু । নিবন্ধের সাথে সংযুক্ত এই প্রাচীরচর্ট যা আপনাকে একটি একক শীটে সমস্ত কিছু দেয়: এখানে চিত্র বর্ণনা লিখুন


@ এর সমস্ত ব্যবহারের মাধ্যমে খুব পুঙ্খানুপুঙ্খভাবে চলুন। আমি এখানে এসেছি এখানে স্ট্রিং খুঁজছেন। ধন্যবাদ!
নিক্সফো

27

আপনি @()কী ফিরে পাবেন তা একক আইটেমের চেয়ে অ্যারে নয় তা নিশ্চিত করতে আপনি একটি সেমিডলেট (বা পাইপলাইন) এর আউটপুটও গুটিয়ে রাখতে পারেন।

উদাহরণস্বরূপ, দির সাধারণত একটি তালিকা ফেরত দেয় তবে বিকল্পগুলির উপর নির্ভর করে এটি কোনও একক জিনিস ফেরত দিতে পারে। যদি আপনি পূর্বাংশ-বস্তুর সাথে ফলাফলগুলি পুনরাবৃত্তি করার পরিকল্পনা করে থাকেন তবে আপনাকে অবশ্যই একটি তালিকা ফিরে পেয়েছে তা নিশ্চিত করতে হবে। এখানে একটি স্বীকৃত উদাহরণ:

$results = @( dir c:\autoexec.bat)

আরও একটি জিনিস ... একটি খালি অ্যারে (একটি ভেরিয়েবল আরম্ভ করতে চাই) চিহ্নিত করা হয় @()


[অ্যারে] $ একটি বাক্য গঠন কিছুটা পরিষ্কার, চাক্ষুষভাবে, তবে ভাল পরামর্শ t
ডন জোনস

7

স্প্ল্যাটিং অপারেটর

একটি অ্যারে তৈরি করতে, আমরা একটি ভেরিয়েবল তৈরি করে অ্যারে নির্ধারণ করি। অ্যারেগুলি "@" প্রতীক দ্বারা চিহ্নিত করা হয়েছে। আসুন উপরে আলোচনাটি নিয়ে একাধিক রিমোট কম্পিউটারের সাথে সংযোগ স্থাপনের জন্য একটি অ্যারে ব্যবহার করুন:

$strComputers = @("Server1", "Server2", "Server3")<enter>

তারা অ্যারে এবং হ্যাশগুলির জন্য ব্যবহৃত হয়।

পাওয়ারশেল টিউটোরিয়াল:: ডেটা জমা, পুনর্বিবেচনা এবং সংশোধন করুন

পাওয়ারশেলের অ্যারে লিটারেলস

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.