পাওয়ারশেলের সেট-ভেরিয়েবলের সাথে ভুল আচরণ


0

আমি একটি ভেরিয়েবলের জন্য একটি গণনা করা মান (কোনও ফোল্ডারে এক্সএমএল ফাইলের সংখ্যা) সেট করতে চাই।

Set-variable (Get-ChildItem $filepath|where{$_.Extension -eq ".xls"}|Measure-Object).Count -Value $NumberOfCabinets

এর পরে, নামযুক্ত আমার পরিবর্তনশীল NumberOfCabinetsআমাকে প্রতিবার 0 এর মান দেয়।

ভেরিয়েবলের সঠিক মান সংরক্ষণ করতে কমান্ডটি কীভাবে পরিবর্তন করা উচিত?


1
আপনি কি নাম্বার অফ ক্যাবিনেটগুলি পরিবর্তনশীল সেট করতে চান বা আপনি কী করতে চান? আমার ধারণা আপনার মানটি কোড হওয়া উচিত এবং নামটি নাম্বার অফ ক্যাবিনেটের মতো যা: Set-variable -name NumberOfCabinets -value (Get-ChildItem $filepath|where{$_.Extension -eq ".xls"}|Measure-Object).Countতবে আমি কেবল করব$NumberOfCabinets = (Get-ChildItem $filepath|where{$_.Extension -eq ".xls"}|Measure-Object).Count
সাইমনস

উত্তর:


0

মন্তব্যে সাইমনস দ্বারা উল্লিখিত হিসাবে, আপনাকে কোনটি প্রকাশ -Nameএবং কোনটিটি পরিবর্তন করতে হবে -Value। বর্তমানে, আপনার এক্সএলএস ফাইলগুলির সংখ্যা পেতে আপনার অভিব্যক্তিটি স্পষ্টতই -Nameপ্যারামিটার Set-Variable- অর্থাৎ সেট করতে চলকটির নাম - এবং এর বিষয়বস্তু $NumberOfCabinetsসেই ভেরিয়েবলের ডেটা। যেহেতু $NumberOfCabinetsএখনও সেট করা হয়নি, নতুন ভেরিয়েবল নাল বরাদ্দ করা হয়েছে। উদাহরণস্বরূপ, যদি পাঁচটি এক্সএলএস ফাইল থাকে তবে নামের একটি ভেরিয়েবল $5তৈরি করা হবে এবং নালায় সেট করা হবে কারণ আপনার গণনা অভিব্যক্তিটি ভেরিয়েবলের নাম সরবরাহ করে।

সাধারণত, Set-Variableযদি আপনার গতিশীলভাবে কোন ভেরিয়েবল সেট করতে হয় তা চয়ন করতে হবে। আপনি যদি যাইহোক এটি ব্যবহার করতে চান তবে আপনার আদেশটি এরকম হবে:

Set-Variable 'NumberOfCabinets' (Get-ChildItem $filepath | where {$_.Extension -eq ".xls"} | Measure-Object).Count

নোট করুন যে সেট করতে / তৈরি করতে হবে ভেরিয়েবলের নামটি কেবল একটি স্ট্রিং হিসাবে পাস করা হয়েছে।

তবে স্ট্যান্ডার্ড অ্যাসাইনমেন্ট অপারেটরটি ব্যবহার করে ভেরিয়েবলটি সেট করা সম্ভবত সহজ:

$NumberOfCabinets = (Get-ChildItem $filepath | where {$_.Extension -eq ".xls"} | Measure-Object).Count

কিছু অন্যান্য উপাধি এবং পাওয়ারশেল সংগ্রহের ইতিমধ্যে একটি Countসম্পত্তি রয়েছে তা ব্যবহার করে আমরা এটিকে কিছুটা কমিয়ে দিতে পারি:

$NumberOfCabinets = (gci $filepath | ? { $_.Extension -eq '.xls' }).Count
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.