where
কমান্ডের পাওয়ার পাওয়ারের সমতুল্য সম্পর্কে আমি কিছু খুঁজে পাচ্ছি না cmd
। আমি কি কেবল এটি থেকে কল করব cmd
বা পিএসে আরও মার্জিত কিছু আছে?
where
কমান্ডের পাওয়ার পাওয়ারের সমতুল্য সম্পর্কে আমি কিছু খুঁজে পাচ্ছি না cmd
। আমি কি কেবল এটি থেকে কল করব cmd
বা পিএসে আরও মার্জিত কিছু আছে?
উত্তর:
Get-Command
কমান্ডলেট ব্যবহার করে এটি নির্বাহকের নাম passing এটি এক্সিকিউটেবলের সম্পূর্ণরূপে সমাধান হওয়া পথের সাথে প্রত্যাবর্তিত অবজেক্টের (টাইপ অ্যাপ্লিকেশনআইনফো ) এর পাথ সম্পত্তিকে পপুলেট করে।
# ~> (get-command notepad.exe).Path
C:\WINDOWS\system32\notepad.exe
gcm
পুরো Get-Command
শব্দটি টাইপ করার পরিবর্তে আপনি আদেশটি সংক্ষেপে বলতে পারেন
gcm notepad
আমার জন্য নিখুঁতভাবে কাজ করা হয়েছে যখন আমি কেবল কোন ফাইলটি কল করছি তা দেখতে চাই।
যদি আপনি কেবল where.exe
সেমিডিকে চালিত না করে একই কার্যকারিতাটি দেখতে চান তবে আপনি যতক্ষণ C:\Windows\System32
আপনার পথে রয়েছেন ততক্ষণ পাওয়ারশেল থেকে কল করতে পারবেন । কমান্ডটি where
(.exe ছাড়াই) অ্যালিজ করা হয়েছে Where-Object
, তাই কেবল পুরো নামটি নির্দিষ্ট করুন।
PS C:\Users\alec> where
cmdlet Where-Object at command pipeline position 1
...
PS C:\Users\alec> where.exe
The syntax of this command is:
WHERE [/R dir] [/Q] [/F] [/T] pattern...
Get-ChildItem C:\SomeDir -Recurse *.dll
এটি বেশ পুরনো যেখানে.এক্স.এই কি করে ... আরও নির্দিষ্ট সুনির্দিষ্ট কার্যকারিতা ছিল যা আপনি নকল করার চেষ্টা করছেন?
সম্পাদনা: জোশুয়ার মন্তব্যের জবাবে ... ওহ, আপনি নিজের পথের পরিবেশের পরিবর্তনগুলিও অনুসন্ধান করতে চান? সমস্যা নেই.
Foreach($_ In $Env:Path -Split ';')
{
Get-ChildItem $_ -Recurse *.dll
}
oh, you want to search your PATH environment variables too?
উম, হ্যাঁ, যে পুরো পয়েন্ট থেকে where
, অন্যথায় আপনি শুধু ব্যবহার করতে পারেন dir
। ডের। :-P
where
একটি বিল্ট ইন cmd
কমান্ড নয়। এটি একটি স্বতন্ত্র অ্যাপ্লিকেশন ( where.exe
), সুতরাং কঠোরভাবে বললে পাওয়ারশেলের "প্রতিস্থাপনের দরকার নেই"।
তাহলে where
পাওয়ারশেলের কাজ কেন হয় না ? মনে হচ্ছে এটি কিছুই করেনি:
PS C:\> where where
PS C:\>
ডিফল্টরূপে where
একটি অন্তর্নির্মিত পিএস সেমিডলেটতে এলিয়াস করা হয়।
PS C:\> get-help where
NAME
Where-Object
...
ALIASES
where
?
ওয়েল, এটি জেনে রাখা দুর্দান্ত, তবে where-object
কল করার চেষ্টা করার সময় কল এড়ানো কোনও উপায় আছে কি where.exe
?
উত্তরটি হল হ্যাঁ.
বিকল্প 1
where.exe
এক্সটেনশন সহ কল করুন । (এটি অন্যান্য এলিয়াসিং এবং ফাইল-এক্সটেনশান অগ্রাধিকার সংক্রান্ত সমস্যাগুলির জন্য কাজ করার একটি সহজ উপায়))
PS C:\> where.exe where
C:\Windows\System32\where.exe
বিকল্প 2
উপনামটি সরান।
PS C:\> Remove-Item alias:\where -Force
PS C:\> where where
C:\Windows\System32\where.exe
পার্শ্ব নোটস
জেডানের উত্তরটিGet-Command
বিকল্প হিসাবে ব্যবহারের প্রস্তাব দেয় । যদিও এটি কিছুটা ভার্বোজ (যদিও ডিফল্ট gcm
ওরফে ব্যবহার করার সময় ), এর চেয়ে বেশি কার্যকারিতা রয়েছে where.exe
। যদি স্ক্রিপ্টিংয়ে ব্যবহৃত হয়, তবে উভয়ের মধ্যে সূক্ষ্ম পার্থক্যের দিকে মনোযোগ দিন। যেমন where.exe
সব ম্যাচ ফেরৎ, যেহেতু Get-Command
আয় শুধুমাত্র প্রথম ফলাফলের যদি না আপনি ঐচ্ছিক অন্তর্ভুক্ত -TotalCount
প্যারামিটার।
PS C:\> where.exe notepad
C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe
PS C:\> (gcm notepad).Path
C:\WINDOWS\system32\notepad.exe
PS C:\> (gcm notepad -TotalCount 5).Path
C:\WINDOWS\system32\notepad.exe
C:\WINDOWS\notepad.exe
PS C:\>
এবং অবশেষে, আপনি যদি ডিফল্ট where
উপন্যাসটি অপসারণ করেন তবে আপনি এটিকে একটি উপন্যাস হিসাবে পুনরায় নিয়োগের বিষয়টি বিবেচনা করতে পারেন Get-Command
। (তবে এটি সম্ভবত সন্দেহজনক উপকারে আসবে))
PS C:\> Set-Alias where Get-Command
PS C:\> where notepad
CommandType Name Version Source
----------- ---- ------- ------
Application notepad.exe 10.0.15... C:\WINDOWS\system32\notepad.exe
PS C:\> (where notepad).Path
C:\WINDOWS\system32\notepad.exe
PS C:\>