2012-02-16 6 views
21

मैं कैसे (रिकर्सिवली) विंडोज 7 में खोज करते हैं सभी फ़ाइल सामग्री? मैं content:xxx आदेश का उपयोग कर रहा हूँ, Windows Explorer में Search settings बॉक्स में, इस उदाहरण में xxx खोज करने के लिए। यह काम नहीं करता है:मैं विंडोज 7 में सभी फ़ाइल सामग्रियों को कैसे खोज सकता हूं?

इस खोज को तोड़ने के तरीके के उदाहरण के रूप में, मुझे org.eclipse.wst.common.component फ़ाइल उस पाठ के साथ दिखाई देती है जिसे मैं खोज रहा हूं और विंडोज 7 परिणाम में इसे वापस नहीं कर रहा है। मुझे लगता है कि यह केवल ज्ञात पाठ-आधारित फ़ाइल प्रकारों को खोज रहा है। मैं इसे कैसे सभी फाइलों खोज कर सकते हैं? मुझे वह सब कुछ ढूंढना है जिसे मैं ढूंढ रहा हूं।

पीएस यदि कोई डॉस-आधारित समाधान है, तो मैं इसे स्वीकार भी करूंगा। हो सकता है कि एक बैच dir /s /b और findstr का उपयोग कर फ़ाइल का निर्माण किया जा सकता है।

संपादित करें: एक पुनरावर्ती खोज के लिए मेरा जरूरत प्रसिद्घ।

उत्तर

4

यहाँ मेरी तीन फ़ाइल डॉस समाधान है, लेकिन अगर किसी को भी एक है कि मैं अभी भी एक उचित विंडोज 7 समाधान के लिए देख रहा हूँ:

1. search.bat

@ECHO off 
FOR /r %%a IN (*.*) DO CALL process.bat %%a 

खोजों सभी फ़ाइलों को रिकर्सिवली, और प्रत्येक पर process.bat चलाता है।

2. process.bat

@ECHO Off 
ECHO "%1" >> output.txt 
TYPE "%1" | FINDSTR /i "search_string_here" >> output.txt 

प्रत्येक फ़ाइल का नाम बाहर प्रिंट, उद्धरण में क्योंकि कुछ फाइलें बैच फ़ाइल कोड के बिना, तो खोज स्ट्रिंग, search_string_here पाता है, और पूरे बाहर प्रिंट टूट जाएगा लाइन है कि खोज स्ट्रिंग में पाया जाता है।

3. उत्पादन।txt (नमूना उत्पादन)

उत्पादन होता है, इस प्रारूप में, मेरे project_name जावा परियोजना D:\project_name\ में संग्रहीत में search_string_here खोज, सभी फाइलों की खोज के साथ ही परिणाम प्रदर्शित करता है, तो वहाँ कुछ कर रहे हैं: आप ऊपर

"D:\project_name\.classpath" 
"D:\project_name\.project" 
    <name>search_string_here</name> 
"D:\project_name\content_search_all_files.bat" 
"D:\project_name\output.txt" 
    <name>search_string_here</name> 
"D:\project_name\pom.xml" 
... 

देख सकते हैं कि search_string_here पाया गया था, <name>search_string_here</name> पर पूर्ण लाइन D:\project_name\.project फ़ाइल में ... अन्य परिणामों के बीच।

फिर भी, मैं अभी भी एक उचित विंडोज 7 समाधान की तलाश में हूं यदि किसी के पास कोई है।

चेतावनी: "रेखा बहुत लंबी है" त्रुटियां; FINDSTR छोटी हो सकती है:

जाहिर है, FINDSTR < grep, जैसा कि आप नहीं जानते थे। कैच-ऑल के एक नंबर के लिए संदेश है, "लाइन बहुत लंबी है"

जाहिर है: यहाँ एक लेख है कि findstr में त्रुटि है कि कर रहे हैं पुन: पेश नहीं है जब एक ही इनपुट एक अलग फाइल में प्रयोग किया जाता है में dives है विभिन्न त्रुटियां। FINDSTR कुछ मुद्दों है। कुछ समय पहले, मैंने कहा कि FINDSTR मामूली रूप से उपयोगी था। आज के बाद, मैं कहूंगा कि यह भी कम है जितना मैंने सोचा था कि यह तब था। - http://blog.mischel.com/2008/10/14/copying-large-files-on-windows/

+1

+1 यह अच्छी तरह से काम करता है। मैंने कुछ मामूली सुधार किए: 'file.bat %% a% 1' कहने के लिए पहली फ़ाइल को बदलना, और दूसरी फ़ाइल' FINDSTR/i "% 2" '; और 'process.bat' के पथ को'% ~ dp0 \ process.bat' में बदल रहा है। पहला परिवर्तन मुझे हार्ड-कोडेड होने की बजाय कमांड लाइन से खोज स्ट्रिंग में पास करने की अनुमति देता है। दूसरा पैरामीटर मुझे हर जगह चार बैच फ़ाइलों की प्रतिलिपि बनाने के बिना एक अलग निर्देशिका से खोज दिनचर्या चलाने की अनुमति देता है, जिसे मैं खोजना चाहता हूं। चीयर्स :) – mellamokb

+3

हा हा हा, महाकाव्य। मुझे इस तथ्य से प्यार है कि W7 में खोज इतनी खराब है कि लोग डॉस का सहारा ले रहे हैं। विशिष्ट एमएस, मैं अभी भी बिल गेट्स (SurfaceRT पर) पर बैठकर कह सकता हूं कि "यह एक टैबलेट है - एक स्टैंड के साथ"। एक स्टैंड! –

+0

@mellamokb, महान जोड़ों। – Xonatron

-1

यदि आप किसी सामान्य फ़ोल्डर (जैसे दस्तावेज़ या चित्र) में स्थित फ़ाइल या फ़ोल्डर की तलाश में हैं, तो आप अक्सर फ़ोल्डर विंडो के शीर्ष पर खोज बॉक्स का उपयोग कर इसे सबसे तेज़ पाते हैं। अधिक जानकारी के लिए, खोज बॉक्स का उपयोग करें देखें। Here.

यदि आप किसी प्रोग्राम की तलाश में हैं, तो आपके ब्राउज़र इतिहास में एक वेबसाइट, या आपके द्वारा अपने व्यक्तिगत फ़ोल्डर में कहीं भी संग्रहीत फ़ाइल, आप स्टार्ट मेनू के नीचे खोज बॉक्स का उपयोग कर सकते हैं। अधिक जानकारी के लिए, एक फ़ाइल या फ़ोल्डर खोजें देखें। Here.

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

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

+1

विस्तृत उत्तर के लिए धन्यवाद लेकिन मैं आम या संबंधित फाइलों या कार्यक्रमों की खोज नहीं कर रहा हूं, मैं असामान्य फ़ाइलों की * सामग्री * खोज रहा हूं, जैसे कि मैं अपने उदाहरण में देता हूं, और मुझे सामग्री की खोज करने की आवश्यकता है सभी फाइलें, पुनरावर्ती। मैं अपनी खोज की रिकर्सिव आवश्यकता को बेहतर ढंग से समझाने के लिए अपने प्रश्न को संशोधित करूंगा। लेकिन आपका शुक्रिया। यदि आप मेरी मदद कर सकते हैं, तो कृपया करें। – Xonatron

+0

विंडोज फोरम से कॉपी और पेस्ट करने के लिए उत्तर नीचे वोट दिया। कम से कम ऐसा लगता है। – FaithReaper

3

यह कमांड प्रॉम्प्ट के माध्यम से किया जा सकता है, हालांकि वाक्य रचना काफी वर्बोज़ है

for /r %a in (\*.*) do find "search_text" %a 

यह अब विंडोज 7 में काम करता है (अतिरिक्त डॉट हटाया)

6

उपयोग findstr आदेश कमांड प्रॉम्प्ट विंडो से।

/एस आप एक पुनरावर्ती खोज

/मैं मामले पर ध्यान नहीं देता देना

29

"user3245549" सही है:

"छोरों के लिए" और नेस्टेड बल्ला फाइलों के साथ ऊपर सभी उत्तर जम्बो हैं । आप सभी की जरूरत सिर्फ उपयोग करने के लिए "findstr" है - उदाहरण:

C:\temp> findstr /S /C:"/work" * | more <-- this will find the string "/work" in any file 

या

C:\temp> findstr /S /C:"/work" "*.*" | more 

या

C:\temp> findstr /S /C:"/work" * > results.txt 

या

C:\temp> findstr /S /C:"/work" "*.*" > results.txt 

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

+0

लोग लूप के लिए उपयोग करने का कारण नहीं हैं, क्योंकि findstr प्रत्येक खोज परिणाम के लिए पूरा पथ प्रदर्शित नहीं कर सकता है - रिकर्सिव खोज परिणाम बेकार बनाते हैं? – hawkeye

+3

मामले को अनदेखा करने के लिए '/ I' का उपयोग करें। आपको इसकी आवश्यकता होगी यहां देखें: http://ss64.com/nt/findstr.html – smwikipedia

+0

मैं इसे अनदेखा करने के लिए '*' के बिना उपयोग कर रहा था, अब यह बहुत जरूरी लगता है, क्योंकि बिना * * यह कुछ भी नहीं देता है। धन्यवाद! – FaithReaper

26

यदि आप एक जीयूआई-आधारित समाधान की तलाश में हैं जहां आपको वाक्यविन्यास याद रखने की आवश्यकता नहीं है, तो नोटपैड ++ को आज़माएं।एक खोज मेनू है जो आपको निर्देशिका में फ़ाइलों को खोजने (फ़ाइलों में ढूंढने) की सुविधा देता है, इसे कुछ एक्सटेंशन (फ़िल्टर) तक सीमित करता है, और उपफोल्डर्स में देखता है, और फिर आप सूची में आइटम पर क्लिक करते हैं और यह उस फ़ाइल को खोलता है संपादित करें।

+1

बहुत चालाक चाल। आप कई और उन्नयन के लायक हैं! – carmenism

+1

ओह, मैंने अभी सब्लिमे टेक्स्ट 3 में पाया है, यह भी संभव है, अपना समय बचाने के लिए, हॉटकी Ctrl + Shift + F है। आहा! – FaithReaper

+0

वास्तव में बहुत बढ़िया जवाब ... –