উইন্ডোজের কমান্ড লাইন থেকে কার্যকর হওয়া প্রোগ্রামটির সন্ধান করা


128

বলুন আমি সিস্টেমে X.EXEফোল্ডারে একটি প্রোগ্রাম ইনস্টল করেছি c:\abcd\happy\। ফোল্ডারটি সিস্টেমের পথে রয়েছে। এখন ধরুন যে সিস্টেমে আরও একটি প্রোগ্রাম রয়েছে যাকে এক্স.এক্সই বলা হয় তবে ফোল্ডারে ইনস্টল করা আছে c:\windows\

কমান্ড লাইন থেকে দ্রুত কী কী খুঁজে পাওয়া সম্ভব যে আমি টাইপ X.EXEকরলে দু'জনের মধ্যে কোনটি X.EXEচালু হবে? (তবে টাস্ক ম্যানেজারে সন্ধান বা প্রক্রিয়া বিশদটি সন্ধান না করে)।

হতে পারে কিছুটা ইন-বিল্ট কমান্ড, বা কিছু প্রোগ্রাম আছে যা এইরকম কিছু করতে পারে? :

detect_program_path X.EXE

উত্তর:


239

whereকমান্ডটি ব্যবহার করুন । তালিকার প্রথম ফলাফলটিই কার্যকর হবে।

সি:।> যেখানে নোটপ্যাড
সি: \ উইন্ডোজ \ সিস্টেম 32 \ notepad.exe
সি: \ উইন্ডোজ \ notepad.exe

এই ব্লগ পোস্ট অনুসারে , where.exeউইন্ডোজ সার্ভার 2003 এবং এর সাথে অন্তর্ভুক্ত রয়েছে, সুতরাং এটি কেবল ভিস্তার সাথে কাজ করা উচিত, উইন 7, এবং অন্যান্য।

লিনাক্স-এ সমতুল্য হ'ল whichকমান্ড, যেমন which ssh


2
+1! আমি কখনই জানতাম না যে এটি উইন্ডোজের একটি অংশ হতে পারে এবং তাই সেদিকে তাকাতে হয়নি! :)
জাবাবা

1
দরিদ্র এক্সপি ব্যবহারকারীদের জন্য কোনও সমতুল্য?
শাহহার_ম

@ সাহার_ মি: আপনি মাইকেল বুড়ের থেকে নীচের স্ক্রিপ্টটি ব্যবহার করে দেখেছেন? এটি অন্তর্নির্মিত নয়, তবে এটি আপনার যা প্রয়োজন তা করতে পারে।
ক্রিস শ্মিচ

1
@ কেনি: ধরে নিই যে আপনি ডিএলএলটির নাম জানেন, আপনি তালিকাটিএলএল ইউটিলিটিটি ব্যবহার করতে পারবেন ( টেকনিকট.মাইক্রোসফট.ইন.ইউস / সিসিনটার্নালস / বিবি 896656 )। কম্যান্ড-লাইন থেকে, শুধু চালানোর listdlls -d foo.dllসকল প্রক্রিয়ার যে মডিউল লোড এবং লোড মডিউল সম্পূর্ণ পাথ আছে দেখতে। বিকল্পভাবে, আপনি কেবল ফাইলের নামের জন্য একটি উইন্ডোজ ফাইল অনুসন্ধান করতে পারেন।
ক্রিস শ্মিচ

2
@ কেনি: আপনি যা চেয়েছেন তা এখানে পোস্ট করা উত্তর থেকে খুব আলাদা। আপনি কী গবেষণা করেছেন তা নিয়ে আপনার একটি নতুন স্ট্যাক ওভারফ্লো প্রশ্ন তৈরি করা উচিত এবং এই মন্তব্যগুলিতে এটির একটি লিঙ্ক পোস্ট করা উচিত।
ক্রিস শ্মিচ

10

এখানে একটি সামান্য সেন্টিমিডি স্ক্রিপ্ট আপনি এর মতো নামের কোনও ফাইলে অনুলিপি করতে পারেন where.cmd:

@echo off
rem - search for the given file in the directories specified by the path, and display the first match
rem
rem    The main ideas for this script were taken from Raymond Chen's blog:
rem
rem         http://blogs.msdn.com/b/oldnewthing/archive/2005/01/20/357225.asp
rem
rem
rem - it'll be nice to at some point extend this so it won't stop on the first match. That'll
rem     help diagnose situations with a conflict of some sort.
rem

setlocal

rem - search the current directory as well as those in the path
set PATHLIST=.;%PATH%
set EXTLIST=%PATHEXT%

if not "%EXTLIST%" == "" goto :extlist_ok
set EXTLIST=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
:extlist_ok

rem - first look for the file as given (not adding extensions)
for %%i in (%1) do if NOT "%%~$PATHLIST:i"=="" echo %%~$PATHLIST:i

rem - now look for the file adding extensions from the EXTLIST
for %%e in (%EXTLIST%) do @for %%i in (%1%%e) do if NOT "%%~$PATHLIST:i"=="" echo %%~$PATHLIST:i

8

মন্তব্যে উল্লিখিত থ্রেড হিসাবে , get-commandপাওয়ারশেলে এটি কার্যকরও করতে পারে। উদাহরণস্বরূপ, আপনি টাইপ করতে পারেন get-command npmএবং আউটপুট নীচের মত:

এখানে চিত্র বর্ণনা লিখুন


(get-command npm).Sourceসমস্ত বৈশিষ্ট্যের পুরো টেবিলের পরিবর্তে এনপিএমের (যেমন উদাহরণস্বরূপ) পাথ দিয়ে প্রতিক্রিয়া জানাবে।
ডেভিড ব্রাউন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.