विंडोज पर, फ़ाइल नाम एक्सटेंशन एक निष्पादन योग्य को दर्शाता है?


18

विंडोज पर, * .exe, * .bat, * .cmd, और * .com सभी ऐसे प्रोग्राम या शेल स्क्रिप्ट का प्रतिनिधित्व करते हैं जिन्हें चलाया जा सकता है, बस उन्हें डबल-क्लिक करके। क्या कोई अन्य फ़ाइल नाम एक्सटेंशन है जो इंगित करता है कि एक फ़ाइल निष्पादन योग्य है?

संपादित करें : जब मैं एक नई परियोजना (या एक पुरानी परियोजना में वापस!) में कूदता हूं, तो एक सामान्य चीज जो मैं चारों ओर देखना चाहता हूं, वह यह पता लगाना है कि वहां कौन से उपकरण हैं। यूनिक्स पर (जो मैंने दशकों से उपयोग किया है), एक निष्पादित बिट है, इसलिए यह उतना ही सरल है:

find . -executable -type f

मुझे लगा कि विंडोज पर, जो लगता है कि "क्या यह निष्पादन योग्य है (और मैं इसे कैसे निष्पादित करता हूं)" के लिए बहुत अधिक जटिल तंत्र है, फ़ाइल नाम एक्सटेंशन की अपेक्षाकृत कम संख्या होगी जो लगभग उसी उद्देश्य से काम करेगी।

मेरी वर्तमान परियोजना के लिए, *.exe *.bat *.cmdलगभग निश्चित रूप से पर्याप्त है, लेकिन मुझे लगा कि मैं पूछूंगा कि क्या कोई आधिकारिक सूची थी।

जवाबों:


27

मूल "निष्पादन योग्य" फाइलें (विंडोज विंडोज को पथ के माध्यम से निष्पादित करने के लिए दिखता है) को एक पर्यावरण चर में संग्रहीत किया जाता है जिसे पैठ कहा जाता है। आप इसे कमांड प्रॉम्प्ट से देख सकते हैं:

C:\>set PATHEXT

मेरी मशीन पर, मुझे यह (WinXP) मिलता है:

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PSC1

यह कोई विशेष सूची नहीं है। विंडोज़ अन्य फ़ाइलों को भी निष्पादित करेगा (उदाहरण के लिए, स्क्रीन सेवर में .scr का विस्तार है और निष्पादन योग्य हैं); विंडोज अन्य फ़ाइल एक्सटेंशन के निष्पादन की भी अनुमति देगा, लेकिन ऊपर सूचीबद्ध डिफ़ॉल्ट निष्पादन योग्य एक्सटेंशन हैं।


1
शानदार खोज!
बार्लोप

1
इसके अलावा, आप अधिक जोड़ सकते हैं - उदाहरण के लिए, "pyscript" चलाने के लिए "pyscript.py" जोड़ने के लिए .py जोड़ें!
फ़ॉसी

@ घोषी लेकिन .py के साथ फिर आप थर्ड पार्टी जा रहे हैं, और कोई अंत नहीं है
बार्लोप

@barlop; वास्तव में मैं हूं, लेकिन यह जानना एक उपयोगी बात है, अगर प्रश्न के लिए स्पर्श :) :)
9

5
Theres भी स्क्रीनसेवर के लिए .SCR वे स्क्रीनसेवर के लिए वास्तविक निष्पादन कोड रख सकते हैं (और कर सकते हैं)। वे सिर्फ पथ में नहीं हैं।
sinni800

2

इंस्टॉलर कार्यक्रमों के लिए एक आम है .msi


3
यह वास्तव में कम निष्पादन योग्य प्रारूप और अधिक स्क्रिप्ट प्रारूप है, क्योंकि इसे अभी भी पार्स करने की आवश्यकता है msiexec.exe
हैलो '71

@ हैलो 71: क्या आप वास्तव में 12 हैं?
पैराडायरायड

@ अपरदो: नहीं, वह वास्तव में नहीं है। उनकी लेखन शैली को देखो।
studiohack

@ अपरैड्रोइड: क्या यह वास्तव में मायने रखता है?
हैलो Jan१

@studiohack: यह वही है जिसके बारे में मुझे भ्रम है। @ हैलो 71: हाँ, यह करता है, क्योंकि यदि आप हैं, तो आप मुझे डराते हैं।
2

2

.vbs एक स्क्रिप्ट है। और .js

लेकिन अगर आप कुछ इतिहास जानते हैं तो आप संदर्भ में चीजों को बेहतर तरीके से रख पाएंगे। मुझे लगता है कि जब तक मेरे पास कंप्यूटर नहीं था, तब तक मैं यह जानने पर भी ध्यान केंद्रित कर सकता था कि कौन से एक्सटेंशन निष्पादन योग्य हैं .. 'क्योंकि वे काफी रोमांचक हैं और मौलिक लगते हैं .. और मुझे लगता है कि वे हैं .. लेकिन ध्यान दें कि कैसे समय के साथ .COM का DOS के बाद बहुत समय बीत गया, बस मुख्य रूप से ज्ञात था कि मैं उसके बाद मान लेता हूँ, अगर विंडोज़ में, कम से कम 9 मिलियन तक कम है। हो सकता है कि पुराने NTs ने उनका बहुत उपयोग किया हो। लिपियों .. vbs win9x समय के आसपास आया शायद .. इसलिए नए दिखाई देते हैं। ps1 vbs से भी नया है।

.COM बहुत पुराना है .. मुझे यकीन नहीं है कि उदाहरण के लिए विंडोज़ xp किसी भी .COM फाइलों पर निर्भर है। लेकिन मुझे लगता है कि मुझे लगता है कि विरासत ऐप्स के लिए यह कमोडिटी है।

.BAT एक स्क्रिप्ट है .. DOS दिनों से वापस। आज भी उपयोग में है। .VBS अधिक आधुनिक है, लेकिन। अभी भी उपयोग किया जाता है और जल्द ही किसी भी समय उपयोग से बाहर नहीं जाएगा, और लोग समझदारी से दोनों का उपयोग करते हैं। वहाँ .CMD जो मैंने इस्तेमाल नहीं किया है, लेकिन शायद कुछ भी करने के लिए अलग नहीं है। Ps1 है (पावरशेल। यह vbscript की तुलना में अधिक आधुनिक है) यदि हम एक ढीले अर्थ में स्क्रिप्ट्स पर बात कर रहे हैं, तो IREGG है।

वास्तव में शब्द निष्पादन योग्य केवल EXE और .COM पर लागू होता है (.COM मूल रूप से विलुप्त हो रहा है .. अधिक एक win9x चीज (win9x में कमांड प्रॉम्प्ट कमोडिक्स था, कोई cmd.exe नहीं था), और COM फाइलें एक डॉस चीज हैं। लेकिन NT का सीएमडी उदाहरण के लिए NT का कमांड शेल cmd.exe नहीं है, हालांकि जैसा कि उल्लेख किया गया है कि NT में एक कमोडिटी है जो मैं विरासत ऐप के लिए अनुमान लगाता हूं लेकिन NT शायद इस पर भरोसा नहीं करता है)

.MSC उदा। Start..run..services.msc वे निष्पादनयोग्य नहीं हैं..मुझे लगता है कि वे एक तरह की स्क्रिप्ट हैं .. Services.msc xml में लिखे गए प्रतीत होते हैं) लेकिन अगर वह ढीला हो रहा है तो एक कदम आगे बढ़ सकता है गैर-सिस्टम चीजों के लिए, और कहें कि HTML पृष्ठ एक 'कॉस हैं, जिनकी व्याख्या की जाती है .. एक स्क्रिप्ट की तरह। लेकिन OS द्वारा नहीं .. हालांकि .CPL स्क्रिप्ट नहीं हैं .. नोटपैड में उन्हें देखें। लोग उन्हें निष्पादनयोग्य या स्क्रिप्ट के रूप में नहीं सोचते हैं, शायद 'केवल एमएस डेवलपर्स ही उन्हें लिखते हैं। (या यदि अन्य करते हैं तो यह बहुत ही असामान्य है!)


दुर्भाग्य से, जोड़ने .MSCके लिए PATHEXTएक्सटेंशन जोड़ के बिना आप एमएमसी स्नैप-इन चलाने नहीं करता है (उदाहरण के servicesबजाय services.msc)। :-(
Synetech

@ सिंथेटेक क्योंकि पहले से ही ए services.exe
किनोकिजुफ

@kinokijuf, सच; यदि आप कमांड-प्रॉम्प्टdiskmgmt से (एक्सटेंशन के बिना) चलाते हैं तो यह काम करेगा, लेकिन रनिंग नहीं होगा। हालाँकि, उनमें से कोई भी काम नहीं करेगा यदि आप उन्हें बिना विस्तार के रन संवाद से चलाने की कोशिश करते हैं , भले ही सिस्टम-वाइड चर में हो । services.mscpathext.msc
16

2

विंडोज पर, फ़ाइल नाम एक्सटेंशन एक निष्पादन योग्य को दर्शाता है?

क्या करना है?

मुझे पता है कि सवाल इस समय थोड़ा उलझा हुआ लग रहा है, लेकिन सवाल मायने रखता है। जैसा कि मैं समझाता हूं कि यह क्यों मायने रखता है, सवाल अधिक स्पष्ट हो जाएगा।

यद्यपि केन व्हाइट ने PATHEXT वैरिएबल (कमांड प्रॉम्प्ट के "एन्वायरमेंट" में) का उत्तर एक अच्छा और छोटा उत्तर है, और यह उत्तर आपके लिए अच्छा हो सकता है, उत्तर अधूरा है। जो कारण अधूरा है वह यह है कि जो आप करने की कोशिश कर रहे हैं, उसके आधार पर सही उत्तर अलग है।

उदाहरण के लिए, आप इसके लिए प्रयास कर सकते हैं:

  • एक "पारंपरिक कमांड प्रॉम्प्ट" ("सीएमडी") से एक कार्यक्रम चलाएं, इसका पूरा नाम लिखकर
  • बेस फाइलनाम टाइप करके, "पारंपरिक कमांड प्रॉम्प्ट" ("सीएमडी") से एक प्रोग्राम चलाएं, लेकिन अपने एक्सटेंशन को छोड़ दें
  • "प्रारंभ" कमांड का उपयोग करें जो "पारंपरिक कमांड प्रॉम्प्ट" ("सीएमडी") में बनाया गया है।
  • PowerShell से एक प्रोग्राम चलाएँ
  • "रन" मेनू आइटम से एक प्रोग्राम चलाएं, जो प्रारंभ मेनू पर पाया गया
  • एक्सटेंशन से समाप्त होने वाली फ़ाइल से संबंधित आइकन पर डबल-क्लिक करने का प्रयास करके, एक्सप्लोरर से एक प्रोग्राम चलाएं
  • Microsoft इंटरनेट एक्सप्लोरर को डाउनलोड की गई फ़ाइल खोलने के लिए कहें
  • Microsoft Windows API से फ़ंक्शन का उपयोग करके प्रोग्राम चलाएं। (यह ऐसा कुछ है जो अंत उपयोगकर्ता आमतौर पर नहीं करते हैं, लेकिन कंप्यूटर प्रोग्रामर ऐसा कर सकते हैं, और इसलिए जानकारी उनके लिए प्रासंगिक है।)

प्रोग्राम चलाने के इन तरीकों में से कुछ यह निर्धारित करने के विभिन्न तरीकों का उपयोग कर सकते हैं कि फ़ाइल नाम एक्सटेंशन का समर्थन क्या हो सकता है। विशेष रूप से, CMD का उपयोग रन मेनू से भिन्न हो सकता है।

उदाहरण के लिए, वेस का गूढ़ ब्लॉग: विंडोज रन कमांड को कस्टमाइज़ करना ... रजिस्ट्री कुंजी सहित विभिन्न स्थानों की जाँच की जा रही है।

यह उत्तर इस बात पर भी निर्भर हो सकता है कि Microsoft Windows के किस संस्करण का उपयोग किया जा रहा है। विंडोज 10 में, मैंने बस कमांड प्रॉम्प्ट पर एक जिप फाइल का नाम टाइप किया और उसने विंडोज एक्सप्लोरर खोला। मुझे याद है कि Windows XP में काम नहीं कर रहा है (हालाँकि Windows XP में, मैं "filename.zip शुरू कर सकता हूं" और उसी तरह का प्रभाव प्राप्त कर सकता हूं)। इसलिए या तो मेरी मेमोरी दोषपूर्ण है, या Microsoft विंडोज के नए संस्करणों में सुधार करने की कोशिश कर रहा है। (उम्मीद है, मेरे लिए, बाद का।)

विंडोज 10 के पारंपरिक कमांड प्रॉम्प्ट ("सीएमडी" चल रहा है) में, जब मैं एक ज़िप फ़ाइल के "सीडी" कमांड का उपयोग करके स्थान पर जाता हूं, और "फ़ाइलनाम। ज़िप" टाइप करता हूं, तो फ़ाइल खुल जाएगी। जब मैं उस स्थान पर जाता हूं, और "फ़ाइल नाम" (".zip" फ़ाइल एक्सटेंशन को छोड़कर) टाइप करता हूं, तो विंडोज फ़ाइल को नहीं ढूंढता है। हालाँकि अगर मैं " ECHO %PATHEXT%" और फिर " SET PATHEXT=%PATHEXT%;.ZIP" (और फिर " ECHO %PATHEXT%" फिर से, यह सुनिश्चित करने के लिए कि मेरा वांछित प्रभाव है), तो मैं "फ़ाइल का नाम" टाइप कर सकता हूं और कमांड प्रॉम्प्ट .ZIP फ़ाइल को खोज लेगा। तो, यह% PATHEXT% चर का प्रभाव है।

आप ASSOCकमांड चलाकर एक्सटेंशन की एक और सूची देख सकते हैं । उदाहरण के लिए, उस कमांड को चलाने से आउटपुट की कई लाइनें दिखाई देती हैं, जिसमें निम्न शामिल हैं (मेरे सिस्टम पर) - " .zip=CompressedFolder"। फिर, मैं देख सकता हूं कि " FTYPE | FIND /I "CompressedFolder"" लिखकर क्या चलता है । (यह पारंपरिक कमांड लाइन के लिए है। पावरशेल उन गैर-उद्धृत उद्धरण चिह्नों को पसंद नहीं करेगा।) (यदि आप FTYPEउस कमांड लाइन के बाकी हिस्सों के बिना " " टाइप करते हैं, तो आप अन्य एक्सटेंशन के बारे में काफी अधिक आउटपुट देखेंगे।)

यदि मैं ASSOC | FIND /C "."अपने विंडोज 10 कंप्यूटर पर " " टाइप करता हूं, तो मुझे लगता है कि मेरे पास 339 लाइनें हैं जब मैं उस तरह से फ़ाइल संघों की जांच करता हूं।

एमएस केबी 162059 इंटरनेट एक्सप्लोरर कैसे कार्यालय दस्तावेजों को खोलता है के समायोजन के बारे में है।

इसलिए, डिफ़ॉल्ट निष्पादन योग्य की सूची के लिए पूछना बहुत अस्पष्ट है। Microsoft Windows के विभिन्न घटक अलग-अलग संसाधनों का उपयोग कर सकते हैं, इसलिए सटीक उत्तर के लिए प्रश्न अधिक विशिष्ट होना चाहिए।

एक आइकन पर डबल-क्लिक करने के लिए एक्सप्लोरर ने एक्सप्लोरर का उपयोग करने का उल्लेख किया। उसके द्वारा उपयोग किए जाने वाले निष्पादनयोग्य की सूची देखने के लिए, मेरा मानना ​​है कि आप रजिस्ट्री की जांच करना चाहते हैं। आप इसे कमांड प्रॉम्प्ट से चला सकते हैं:

reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts

(मैं उन्हें यहां सूचीबद्ध नहीं करने जा रहा हूं। मेरे विंडोज 10 कंप्यूटर पर उनमें से 286 हैं।)

वह विस्तार को सूचीबद्ध करता है। एक्सटेंशन के बारे में विवरण सहित अधिक जानकारी देखने के लिए:

reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts /s

इसलिए, जैसा कि आप अब तक देख सकते हैं, यह प्रतीत होता है कि निर्दोष प्रश्न वास्तव में एक काफी जटिल विषय हो सकता है। मेरा मानना ​​है कि मैंने अपना मामला बना लिया है कि एक प्रश्न का उत्तर विशिष्ट क्यों होना चाहिए ताकि एक पूर्ण उत्तर प्राप्त करने में सक्षम हो जो पूरी तरह से संबोधित करता है कि विंडोज का एक एकल घटक फ़ाइल नाम एक्सटेंशन कैसे निर्धारित कर सकता है। अखरोट के खोल में, विंडोज के लिए सिर्फ एक ही जवाब नहीं है, क्योंकि विंडोज में कई घटक हैं जो विभिन्न तरीकों से व्यवहार करते हैं। उम्मीद है कि मैंने वह दिखाना शुरू कर दिया है, और कुछ अतिरिक्त संसाधनों की ओर इशारा किया है जो प्रासंगिक जानकारी दिखाते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.