একটি সেমিডি.এক্সএইচ-লাইনার এর জন্য which
হবে:
for %G in (<binary.exe>) do @echo.%~$PATH:G
আপনি এটি একটি সাধারণ হিসাবে কোড করতে পারেন যা।
@echo off
for %%G in (%1) do @echo.%%~$PATH:G
সম্পাদনা: এটি বাইনারি পুরো নাম প্রয়োজন: which perl.exe
না which perl
। এমন একটি ব্যাচ ফাইল লেখা সম্ভব যা% PATHEXT% কে বিবেচনায় নেয়, সুতরাং এটি বাইনারিটির পুরো নামের প্রয়োজন হয় না। আপনার প্রয়োজন হলে আমাকে জানান।
সম্পাদনা 2: যাইহোক আমি ব্যাচের ফাইলটি লেখার সিদ্ধান্ত নিয়েছি। এটা এখানে:
@echo off
setlocal enabledelayedexpansion
set ext= ;%PATHEXT%
:extloop1
for /f "delims=; tokens=1,*" %%A in ("!ext!") do (
if exist %1%%A (
echo .\%1%%A
goto finish
)
set ext=%%B
)
if "!ext!" neq "" goto extloop1
set ext= ;%PATHEXT%
:extloop2
for /f "delims=; tokens=1,*" %%A in ("!ext!") do (
for %%C in (%1%%A) do (
if exist %%~$PATH:C (
echo %%~$PATH:C
goto finish
)
)
set ext=%%B
)
if "!ext!" neq "" goto extloop2
:finish
endlocal
প্রথমত, ববের অভিযোজন অনুযায়ী, বাইনারিটি বর্তমান ডিরেক্টরিতে উপস্থিত কিনা তা পরীক্ষা করে। বাইনারিটি পাওয়া না গেলে, অন্য লুপটি কার্যকর করা হয় যা% PATH% ভেরিয়েবলের মাধ্যমে অনুসন্ধান করে।
লুপগুলি ভিত্তিক হয় if ... goto
, for
কমান্ডটি কেবল ext
'দ্বারা' দ্বারা বিভক্ত করতে ব্যবহৃত হয়; অক্ষর। এর মান %PATHEXT%
একটি খালি এক্সটেনশনের সাহায্যে প্রম্পেন্ড করা হয়, যা পুরো নামযুক্ত বাইনারি - উভয়ই কাজ করে which perl
এবং অনুসন্ধান করার অনুমতি দেয় which perl.exe
।
.\binary.*
প্রথমে চেক করুন । কমান্ড পাথের ডিরেক্টরিগুলি অনুসন্ধানের আগে অপারেটিং সিস্টেম সর্বদা বর্তমান ডিরেক্টরিটিতে সর্বদা অনুসন্ধান করে।