2009-12-20 14 views
7

के लिए मैं की तरहWindows 3.1 में पाश डॉस

for -f %%a in ('dir /b') do command 

नीचे यह स्क्रिप्ट Windows XP में काम करता है एक बैच पटकथा लिखी है लेकिन अब मैं विंडोज 3.11 में इसे चलाने के लिए चाहते हैं।

यह एक वाक्यविन्यास त्रुटि देता है; ऐसा लगता है कि विंडोज 3.1 के डॉस '-f %% में एक' (कमांड ') का समर्थन नहीं करते हैं।

आप बता सकते हैं क्या आदेश मैं Windows 3.1 में उपयोग बराबर कार्यक्षमता प्राप्त करने के लिए कर सकते हैं?

+6

क्यों _earth_ पर आप Windows 3.1 का उपयोग कर रहे हैं? – SLaks

+0

शायद वह एक ही नेटवर्क पर विभिन्न डायनासोर ओएस को जोड़ रहा है जैसे मैंने अपने नेटवर्किंग क्लास के लिए किया था। –

+0

क्या आप विंडोज 3.1 या वर्कग्रुप 3.11 के लिए विंडोज का उपयोग कर रहे हैं? – SLaks

उत्तर

1

आप सही हैं; यह वाक्यविन्यास विंडोज 3.1 द्वारा समर्थित नहीं है।
इसे विंडोज एनटी में cmd.exe द्वारा जोड़ा गया था।

मुझे नहीं लगता कि आप मिल जाएगा एक बराबर आदेश Windows 3.1 के साथ शामिल है।
संपादित करें: मैं गलत था; हाबिल का जवाब देखें।

आप इस तरह के एक पूर्व ऐतिहासिक ओएस क्यों प्रयोग कर रहे हैं?

8

डॉस 5.0 में, आप बयान के IN (...) हिस्से के अंदर एक आदेश का उपयोग नहीं कर सकते। क्या आप कर सकते हैं करना हालांकि निम्नलिखित है:

FOR -F %%A IN (*.txt) DO command 

जो विस्तार txt साथ प्रत्येक फ़ाइल के लिए command निष्पादित करेंगे। दूसरे शब्दों में, dir कमांड निहित है।

मैं अपरिहार्य, अब नहीं बल्कि धूल समय जेफ़ प्रोसीस के डॉस 5. से यह जानकारी मिली। कभी पता था कि मैं कभी का उपयोग करें इसे फिर से ;-)

संपादित करें: ऐसा लगता है कि अविवेक (इतिहास देखें) आवश्यक नहीं था। उपरोक्त कथन आपको बस चाहिए। अर्थात, और निम्न काम करता है और प्रिंट प्रत्येक फ़ाइल:

FOR -F %%A IN (*.txt) DO TYPE %%A 
+0

एक छोटा सा नोट: * * उद्धरण * के आसपास * * होना चाहिए।txt', उन समय समर्थित नहीं थे (फ़ाइल नामों में रिक्त स्थान या लंबे फ़ाइल नाम किसी भी तरह समर्थित नहीं थे)। – Abel

+0

मूल प्रश्न के बराबर '(*)', '(* .txt)' नहीं होगा। –

+1

हाबेल: उद्धरण मौजूद नहीं थे, जबकि एमएस-डॉस फ़ाइल नामों में रिक्त स्थान वास्तव में कानूनी थे: http://blogs.msdn.com/oldnewthing/archive/2009/07/09/9825126.aspx – Joey