আমি কীভাবে সেমিডি.এক্সে "যা <দ্বৈত>" করতে পারি


10

বাইনারি (যে %PATH%পরিবর্তনশীল পয়েন্টগুলি) অবস্থিত তা দ্রুত নির্ধারণ করার কোনও উপায় আছে কি ?

এটি এমন কিছু যা which perltraditionalতিহ্যবাহী ইউনিক্স শেলের সমতুল্য কাজ করে ।

আমি বুঝতে পারি যে রিসোর্স কিটের একটি whereকমান্ড রয়েছে, তবে এই কিটটি আমার (কর্পোরেট) কম্পিউটারে ইনস্টলড নেই, তাই আমি ব্যবহার করতে পারি না where।

উত্তর:


14

একটি সেমিডি.এক্সএইচ-লাইনার এর জন্য 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।


1
ঠিক আছে, যদি আপনি একটি বর্ধিত ব্যাচ ফাইল লেখার শেষ না করেন, তবে পাশাপাশি সমস্ত পথ যেতে হবে এবং .\binary.*প্রথমে চেক করুন । কমান্ড পাথের ডিরেক্টরিগুলি অনুসন্ধানের আগে অপারেটিং সিস্টেম সর্বদা বর্তমান ডিরেক্টরিটিতে সর্বদা অনুসন্ধান করে।
— বব

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.