উইন্ডোজ কমান্ড প্রম্পট অ্যাপ্লিকেশন প্রোগ্রাম চালু করার সময় PATH ভেরিয়েবল দ্বারা নির্দিষ্ট করা অবস্থানগুলি বাদে অন্য কোথাও অনুসন্ধান করে?


35

আমি নিম্নলিখিত পরীক্ষার চেষ্টা করেছি।

আমি শুরু করার আগে, আমি সেন্টিমিডি থেকে PATH ভেরিয়েবলটি পরীক্ষা করেছিলাম, যার নিম্নলিখিত মান রয়েছে:

Path=C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\ProgramData\Lenovo\ReadyApps;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Skype\Phone\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Calibre2\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;

প্রথমদিকে, আমি ভেবেছিলাম যে সেন্টিমডিটি কেবল PATH ভেরিয়েবলের মধ্যে থাকা ডিরেক্টরিগুলিতে এক্সিকিউটেবলগুলি সন্ধান করে, তাই আমি এলোমেলোভাবে একটি অ্যাপ্লিকেশন - উইনওয়ার্ড.এক্স (মাইক্রোসফ্ট ওয়ার্ড) বেছে নিয়েছি এবং কমান্ড লাইন থেকে এটি চালু করার চেষ্টা করেছি:

start winword

তবে আমার অবাক করে দিয়ে প্রোগ্রামটি চালু! আমি অবাক হওয়ার কারণ হ'ল আমি 'উইনওয়ার্ড' নামক এক্সি ফাইলের জন্য PATH ভেরিয়েবলের সমস্ত ডিরেক্টরি অনুসন্ধান করেছিলাম কিন্তু আমার সমস্ত অনুসন্ধান খালি এসেছে!

অতএব আমি এই সিদ্ধান্তে পৌঁছেছি যে কমান্ড প্রম্পটটি এক্সিকিউটেবলের সন্ধানের জন্য PATH ভেরিয়েবলের মধ্যে উল্লিখিত স্থানগুলি ব্যতীত অন্য কোনও জায়গায় অনুসন্ধান করতে জানে।

সুতরাং স্পষ্টতই, পরবর্তী কাজটি আমি করছিলাম ঠিক সেই জায়গার সন্ধান করা যেখানে 'উইনওয়ার্ড' এক্সিকিউটেবল ফাইলটি অবস্থিত। দেখা যাচ্ছে যে winword.exe এখানে অবস্থিত:

C:\Program Files\Microsoft Office 15\root\office15

সুতরাং আমাকে এই ধারণাটি দিচ্ছেন যে 'স্টার্ট' কমান্ডটি চালানোর সময় সম্ভবত সিএমডি স্বয়ংক্রিয়ভাবে প্রোগ্রামফিল এবং প্রোগ্রামফিল (x86) (এবং তাদের সমস্ত সাব-ডাইরেক্টরিগুলি) দেখে? যার ফলে আমার কম্পিউটারে অড্যাসিটি ইনস্টল করা একটি অ্যাপ্লিকেশন আরম্ভ করার চেষ্টা করেছিল যার মধ্যে রয়েছে এক্সপি ফাইলটি এখানে রয়েছে:

C:\Program Files (x86)\Audacity

আবার আমার অবাক করে দিয়েছি, আমি টাইপ করার সময় অড্যাসিটি আরম্ভ করতে ব্যর্থ হয়েছিল:

start audacity

কমান্ড লাইনে

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

এরপরে আমি পথের সাথে অডেসি.এক্সেযুক্ত ডিরেক্টরি যুক্ত করেছি:

set path=%path%;C:\Program Files (x86)\Audacity

এর পরে আমি আবার অডাটি চালু করার চেষ্টা করেছি:

start audacity

ওয়েল, অবাক হওয়ার মতো নয়, অডাসিটি চালু হয়েছিল।

আমি যা জানতে চাই তা হ'ল কমান্ড প্রম্পটটি এক্সিকিউটেবলের সন্ধান করে? কেন এটি winword.exe চালু হয় এমনকি যখন ডিরেক্টরিটি এটিতে PATH এর অংশ নয়, তবে একই জিনিসটি অ্যাসিডিটি.অ্যাক্সের ক্ষেত্রে সত্য নয়?

আমি অন্যান্য অ্যাপ্লিকেশন চেষ্টা করেছিলাম। আমি যখন স্টার্ট কমান্ডটি ব্যবহার করি তখন Chrome এবং ফায়ারফক্স কাজ করে।

আপডেট: আমি উইন্ডোজ সংস্করণ 6.3.9600 (উইন্ডোজ 8.1) চালাচ্ছি


উত্তর:


44

প্রথমদিকে, আমি ভেবেছিলাম যে সেন্টিমডিটি কেবল PATH ভেরিয়েবলের মধ্যে থাকা ডিরেক্টরিগুলিতে এক্সিকিউটেবলগুলি সন্ধান করে, তাই আমি এলোমেলোভাবে একটি অ্যাপ্লিকেশন - উইনওয়ার্ড.এক্স (মাইক্রোসফ্ট ওয়ার্ড) বেছে নিয়ে কমান্ড লাইন থেকে এটি চালু করার চেষ্টা করেছি:

winword.exeকাজ করার কারণটি হ'ল একটি রেজিস্ট্রি কী বিদ্যমান যা মাইক্রোসফ্ট ওয়ার্ডের (উইনওয়ার্ড.এক্সি) পথ নির্ধারণ করে। এই অ্যাপ্লিকেশনগুলি ইনস্টল করা থাকলে Firefox.exe এবং Chrome.exe এর জন্য অনুরূপ কী উপস্থিত রয়েছে।

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

আমি যা জানতে চাই তা হ'ল কমান্ড প্রম্পটটি এক্সিকিউটেবলের সন্ধান করে?

সিস্টেম PATH ভেরিয়েবল, ব্যবহারকারীর PATH ভেরিয়েবল এবং এর মধ্যে থাকা বিভিন্ন কী ..\App Paths। আমি নিশ্চিত করতে সক্ষম হয়েছি যে এটি ইনস্টল হওয়ার পরে অড্যাসিটি নিজের জন্য কোনও কী তৈরি করে না।

যখন শেলএক্সেকিউটেক্স এক্স ফাংশনটিকে তার এলপিফায়াল প্যারামিটারে এক্সিকিউটেবল ফাইলের নামের সাথে ডাকা হয়, সেখানে বেশ কয়েকটি জায়গা ফাংশনটি ফাইলটির সন্ধান করে। আমরা অ্যাপ্লিকেশন পাথ রেজিস্ট্রি সাবকিতে আপনার অ্যাপ্লিকেশনটি নিবন্ধ করার পরামর্শ দিচ্ছি। এটি করার ফলে সিস্টেমটি PATH এনভায়রনমেন্ট ভেরিয়েবল পরিবর্তন করার জন্য অ্যাপ্লিকেশনগুলির প্রয়োজনীয়তা এড়ানো যায়।

  • বর্তমান ওয়ার্কিং ডিরেক্টরি।
  • শুধুমাত্র উইন্ডোজ ডিরেক্টরি (কোনও উপ-ডিরেক্টরি অনুসন্ধান করা হয় না)।
  • উইন্ডোজ \ সিস্টেম 32 ডিরেক্টরি।
  • PATH এনভায়রনমেন্ট ভেরিয়েবলের তালিকাভুক্ত ডিরেক্টরি।
  • প্রস্তাবিত: HKEY_LOCAL_MACHINE OF সফটওয়্যার \ মাইক্রোসফ্ট, উইন্ডোজ \ কারেন্ট ভার্সন \ অ্যাপ পাথ

সূত্র: আবেদনের নিবন্ধকরণ


15

কমান্ড প্রম্পট থেকে, আপনি কেবল প্রবেশ WinWordকরলে এটি চালাতে ব্যর্থ হয়।

প্রবেশ START WinWordকরলে তা চলে।

Startকমান্ড এখানে চাবিকাঠি।

আপনি যখন স্টার্ট কমান্ডের মাধ্যমে কোনও ফাইল সম্পাদন করার চেষ্টা করেন, কমান্ড প্রম্পট কোনও অনুসন্ধান করে না। পরিবর্তে, এটি ফাইলের নাম (এবং যুক্তিগুলি) নিজেই উইন্ডোজকে (শেলএক্সেকিউটেক্স এক্সপি কল মাধ্যমে) প্রেরণ করে, এরপরে অবশ্যই ফাইলটির অবস্থান অনুসন্ধান করা উচিত। নিম্নলিখিত ক্রমে এটি বেশ কয়েকটি স্থান অনুসন্ধান করেছে:

  • বর্তমান ওয়ার্কিং ডিরেক্টরি।

  • কেবল Windowsডিরেক্টরি (কোনও উপ-ডিরেক্টরি অনুসন্ধান করা হয় না)।

  • Windows\System32ডিরেক্টরি।

  • PATHপরিবেশ পরিবর্তনশীল তালিকাভুক্ত ডিরেক্টরি ।

  • প্রস্তাবিত:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

WinWordএই রেজিস্ট্রি কী আছে। চাবিকাঠিটি PATHখুব দীর্ঘ না হওয়া থেকে দূরে রাখতে হবে ।


7
দয়া করে সমস্ত উত্স উদ্ধৃত করুন এবং উদ্ধৃত করুন। আপনি মেমরি থেকে অনুসন্ধানের আদেশটি না লিখে আপনার উত্সটি উদ্ধৃত করা উচিত ছিল, যা তালিকা এবং এটি অনুসন্ধান করা ক্রমটি নির্দেশ করে।
রামহাউন্ড

উত্সটি হ'ল আমি দু'বছর আগে যা কিছু নিয়ে কাজ করছি তার থেকে আমার নোটগুলি। আমি জানি না তখন আমি এটি কোথায় নিয়েছি, ওয়েব পৃষ্ঠাগুলি আসে এবং যায়।
ল্যারিরিক

5
আপনি এগুলি একই ডকুমেন্টেশন থেকে পেয়েছেন অন্য সবাই এগুলি পেয়েছে।
রামহাউন্ড

7

উইন্ডোজ কমান্ড প্রসেসর (সিএমডি.এক্সই) -তে প্রোগ্রামটি (যখন আপনি ড্রাইভ / পাথ ইন কমান্ড প্রম্পট ছাড়াই এর মডিউলটির নাম উল্লেখ করবেন) পাওয়া গেলে এটি শুরু করা যেতে পারে:

  • PATH এনভায়রনমেন্ট ভেরিয়েবল দ্বারা (এক্সিকিউটেবল এবং এর হার্ডলিঙ্ক / সফটলিঙ্ক / একই নামের শর্টকাট উভয়ই)

  • DOSKEY ওরফে দ্বারা

  • থেকে HKLM\Software\Microsoft\Windows\CurrentVersion\App Pathsবা HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths( startকমান্ড ব্যবহার করার সময় ) অ্যাপ্লিকেশন পাথ দ্বারা

এই জ্ঞানটি (বিশেষত শেষটি) ব্যবহার করে আপনি আপনার নিজের জন্য উপযোগী নিজস্ব এলিয়াস তৈরি করতে পারেন। উদাহরণস্বরূপ আপনি কমান্ড প্রম্পটে টাইপ করে এই অ্যাপ্লিকেশনটির HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\au.exeডিফল্ট মান সহ তৈরি করতে C:\Program Files (x86)\Audacity\Audacity.exeএবং এই অ্যাপ্লিকেশনটি শুরু করতে পারেন start au


0

অন্য উত্তরগুলি সম্ভবত আপনার ক্ষেত্রে সুনির্দিষ্ট কারণ বলে মনে হচ্ছে, আপনার প্রশ্নের আরও একটি উত্তরও রয়েছে যা কিছু অন্যান্য অ্যাপ্লিকেশনগুলির ক্ষেত্রেও হতে পারে: একই জায়গায় আপনি খুঁজছিলেন, তবে বিভিন্ন ফাইল এক্সটেনশন সহ।

আপনি সুনির্দিষ্টভাবে বলেছিলেন যে আপনি এক্সটেনশন সহ ফাইলগুলি অনুসন্ধান করছেন exe। উইন্ডোজ অন্যান্য এক্সটেনশনের ফাইলগুলি কার্যকর করার চেষ্টা করবে।

কমান্ড কার্যকর করার সময় আর একটি পরিবেশের পরিবর্তনশীল হ'ল ভেরিয়েবল PATHEXT। এটি ;কার্যকর করার চেষ্টা করার জন্য ফাইল এক্সটেনশনের একটি- অনুমোদিত তালিকা। যদি আপনি প্রতিধ্বনিত হন তবে PATHEXTআপনি .COM;.EXE;.BAT;.CMD;.VBS;... (ইত্যাদি) এর মতো কিছু দেখতে পাবেন । কিছু অ্যাপ্লিকেশন তাদের শেষ-ব্যবহারকারী এন্ট্রি পয়েন্ট হিসাবে এই অন্যান্য ফাইল প্রকারগুলি ব্যবহার করে। এটি অনেক কম সাধারণ, তবে এটি ঘটে। আমি বেশ কয়েকটি বড় বাণিজ্যিক পণ্য ব্যবহার করেছি যা .BATস্ক্রিপ্ট থেকে শুরু হয় । একটি উদাহরণ হিসাবে তাদের একজন ব্যবহার করার জন্য, আমি কমান্ড ব্যবহার করে শুরু করতে পারেন standaloneযদিও সেখানে নেই standalone.exe... পরিবর্তে, এটি একটি হয়েছে standalone.bat

আমি এখন যা PATHEXTদেখছি সেগুলিতে আমার থাকা কিছু এক্সটেনশানগুলির মধ্যে আমার কখনও অ্যাপ্লিকেশন ব্যবহার হয়নি। বেশী যে আমি করেছি মধ্যে আরো অনেক কিছু সাধারণভাবে চালানো (কিন্তু যতটা না স্পষ্টত যেমন exe) আছেন: .com, .bat, .vbs, .js, .jar। প্রথম দুটি হ'ল উইন্ডোজ ব্যাচের স্ক্রিপ্ট ফাইলগুলি এবং অন্য তিনটি হ'ল নির্দিষ্ট প্রোগ্রামিং ভাষার জন্য ফাইলের ধরণ যা স্ক্রিপ্টগুলি বা ভার্চুয়াল মেশিন থেকে চালিত হয় exe(যথাক্রমে: ভিজ্যুয়াল বেসিক, জাভাস্ক্রিপ্ট এবং জাভা)।


ডাউন-ভোটারদের মন্তব্য করতে যত্ন (আমি জানি এটি জিজ্ঞাসা করা সাধারণত অসর্থক তবে কখনও কখনও আমি কোনও প্রতিক্রিয়া পাই)? আমি কোথাও ভুল করেছি?
Loduwijk

আমি নয়, একটি বুনো অনুমানের কারণ এটি কারণ PATHEXTএবং যখন PATHউভয়ই জিনিস চালানোর সাথে সম্পর্কিত, তারা তাদের নিজ নিজ কার্যক্রমে কিছুটা অরথোগোনাল। PATHনির্দিষ্ট করে যেখানে জিনিষ চালানোর জন্য দেখুন, এবং কি ওপি, জিজ্ঞাসা ছিল যখন PATHEXTনির্দিষ্ট করে কি চলবে।
19:30 এ Dgnuff

@ ডিগনফ আকর্ষণীয়, যেহেতু এটি আমার বক্তব্য ছিল: ওপি বিশেষত প্রশ্নটি এমনভাবে বানিয়েছিল যে ফ্রেম চ্যালেঞ্জের জন্য ভিক্ষা করেছিল ... এসই ভাষায় তারা ফাইলটি চালিত হচ্ছে না এমন ধারণা করে "XY প্রশ্ন" জিজ্ঞাসা করছিল যে জায়গাগুলিতে ইতিমধ্যে পথে অনুসন্ধান করা হয়েছিল in যাইহোক ধন্যবাদ.
লুডুভিজক

0

start winwordকমান্ড প্রম্পটটি আরম্ভ করার কথা বলে না winword। এটি কমান্ড প্রম্পটকে startযুক্তি দিয়ে প্রবর্তন করতে বলে winwordStartএটির জন্য নিজস্ব পদ্ধতি ব্যবহার করে winword

কেবলমাত্র winwordকমান্ড প্রম্পটটি প্রবর্তন করতে বলে winword। এবং যদি আপনি এটি চেষ্টা করেন, যেহেতু winwordএটি তে PATHনেই, এটি চালু হয় না।

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