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:\>