2009-05-07 11 views
6

एमएस-डॉस में, अगर मैं dir *.pdf दर्ज करता हूं, तो मुझे निर्देशिका में सभी पीडीएफ फाइलें मिलेंगी। क्या सब कुछ प्राप्त करने का कोई तरीका है लेकिन पीडीएफ फाइलें? dir !*.pdf की तरह कुछ?डॉस: निर्देशिका सूची जिसमें फ़ाइल प्रकार शामिल नहीं है?

धन्यवाद! ।

dir | findstr /vi ".pdf" 

:

उत्तर

12

मुझे लगता है कि जो -v grep के बराबर है findstr के लिए एक/वी विकल्प नहीं है (सभी लाइनों कि नहीं पाठ शामिल होती हैं, तो मैं पर विचार करना होता वाक्य रचना मामूली अंतर हो सकता है, मैं बहुत ज्यादा नहीं इसका इस्तेमाल करने की जरूरत है और या, पड़ा है मैं अपने वर्तमान स्थान पर विंडोज चलाने don'r।

उपयोग findstr /? जानकारी के लिए एक कमांड प्रॉम्प्ट से।

अगर आप CygWin (टी के लिए पसंद का मेरा उपकरण स्थापित करें सामान के बारे में उनकी तरह), तो आप सिर्फ ग्रेप ही उपयोग कर सकते हैं:

ls -al | grep -vi '\.pdf$' 

परिशिष्ट:

मैं वास्तव में इस एहसास नहीं था लेकिन जाहिरा तौर पर भी regexes समर्थन findstr तो आप उपयोग कर सकते हैं:

dir | findstr /vi "\.pdf$" 

grep के समान ही है (मैंने इसका परीक्षण नहीं किया है, मुझे केवल इसे TechNet पर मिला है, इसलिए आपको इसे स्वयं जांचना होगा)।

+0

+1 ऐसा लगता है - अच्छा काम। –

+0

धन्यवाद, @ एंड्रयू, मैं वास्तव में परीक्षण करने के लिए वीएमवेयर प्लेयर को क्रैंक नहीं करना चाहता था :-) – paxdiablo

+0

बहुत अच्छा काम करता है। धन्यवाद! –

3

आप को findstr साथ dir गठजोड़ कर सकते हैं लगभग आप क्या चाहते हैं:

dir * | findstr /vi .pdf 

नोट हालांकि, कि अगर एक फ़ाइल my.pdf.converted.txt कहा जाता है, उसे गलत तरीके से दूर यहां फेंक दिया जाएगा।

for /f %a in ('dir /b *') do @if "%~xa" neq ".txt" echo %a 

गुड लक चाहे आप कुछ भी कोशिश :) डॉस "मजा" है:

आप वास्तव में फैंसी प्राप्त करना चाहते हैं, यहाँ एक पूरी तरह से सही संस्करण, एक बैच स्क्रिप्ट के लिए अधिक उपयुक्त है।

+0

धन्यतः, मैं आपके "pdf.converted.txt" उदाहरण जैसी किसी भी चाल से निपट नहीं रहा हूं। अच्छा पकड़, यद्यपि! XP में –

+0

findstr मुझे बताता है कि यह सामान्य रूप से लाइन के अंत से मेल खाने के लिए पर्याप्त रेगेक्स को संभाल सकता है – Anonymous

0

मुझे पता है कि यह आपके लिए पहले से ही काम कर रहा है लेकिन आप इसे डॉस (कम से कम जिन्हें मैं याद कर सकता हूं) के अधिकांश संस्करणों के साथ कर सकता हूं।

Attrib * .bad + H
dir/ँ
Attrib * .bad एच

जिन्हें आप प्रदर्शित करने के लिए नहीं करना चाहती छुपा, dir कर फिर उन्हें दिखाते समय के प्रभावित करते हैं कौन सा । यह थोड़ा बुरा है मुझे स्वीकार करना होगा लेकिन ऐसा लगता है कि यह चाल चल रहा है।

0

MS-DOS या सीएमडी में आप सिर्फ पीडीएफ फाइलों से बचने के लिए टाइप करें:

dir | find/V ".pdf" 

लेकिन उत्पादन के निचले भाग में फ़ाइलों की गिनती याद pdf फ़ाइल (रों) शामिल होंगे।

इसके अलावा आप ".pdf" से ".xxx" को प्रतिस्थापित करके अन्य एक्सटेंशन के लिए भी इस कमांड का उपयोग कर सकते हैं, जहां xxx कोई एक्सटेंशन है।

0

यहाँ एक और आदेश के लिए findstr/लगता है और किनारी का उपयोग किए बिना एक आसान तरीका है:

for %%a in (*) do (
    if not exist %%~Na.pdf echo %%a 
) 

मूल रूप से सभी फाइलों के माध्यम से लूप के लिए इच्छा पाश। "अगर अस्तित्व में नहीं है" सुनिश्चित करेगा कि कोई * .pdf फ़ाइल मुद्रित नहीं है

%% ~ Na का अर्थ है %% के चर नाम का विस्तार इसके बिना विस्तार के।

संबंधित मुद्दे