2012-03-10 19 views
5

का उपयोग कर एकाधिक फ़ाइलों में एक स्ट्रिंग को ढूंढें और बदलें, मेरे पास फ़ोल्डर में 3000 से अधिक फ़ाइलें हैं। मैं पाठ को दूसरे के साथ ढूंढना और बदलना चाहता हूं। मैं उसे कैसे कर सकता हूँ? मैं बैच स्क्रिप्ट में एक नौसिखिया हूँ। मैं इसे 1 फ़ाइल में बदल सकता हूं लेकिन मुझे नहीं पता कि कई फाइलों में कैसे बदला जाए।बैच स्क्रिप्ट

FOR /F %%L IN (lala.txt) DO (
    SET "line=%%L" 
    SETLOCAL ENABLEDELAYEDEXPANSION 
    set "x=!line:E:\Test=E:\Test\Temp!" 
    echo f | xcopy /E !line! !x! 
    ENDLOCAL 
) 

मैं सभी फ़ाइलों में स्ट्रिंग को प्रतिस्थापित करने के लिए अपना कोड कैसे संपादित कर सकता हूं? आपकी मदद के लिए प्रतीक्षा कर रहा है। धन्यवाद

+1

सभी फाइलों –

+0

मुझे माफ करना के लिए पाश के लिए एक में 1 फ़ाइल कोड का उपयोग प्रवेश कर सकते हैं, आपका कोड ऊपर _not_ किसी भी स्ट्रिंग एक फ़ाइल में प्रतिस्थापित नहीं करता है! Lala.txt फ़ाइल की सामग्री अपरिवर्तित बनी हुई है ... – Aacini

उत्तर

8

Find And Replace Text command line utility स्थापित करें और फिर आप बस

fart *.txt E:\Test E:\Test\Temp 
+0

ग्रेट यूटिलिटी के लिए लूप के अंदर होना चाहिए। विज्ञापित के रूप में काम करता है। उल्लेख करने के लिए धन्यवाद! – bvj

3

आप फ़ाइलों के लिए एक दूसरा लूप का उपयोग कर सकते हैं।

for %%f in (*.txt) do (
    FOR /F %%L IN (%%f) DO (
     SET "line=%%L" 
     SETLOCAL ENABLEDELAYEDEXPANSION 
     set "x=!line:E:\Test=E:\Test\Temp!" 
     echo f | xcopy /E !line! !x! 
     ENDLOCAL 
) 
) 

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

+0

मुझे उत्सुकता है कि आप लूप के अंदर देरी के विस्तार को सक्षम क्यों करते हैं, लूप के बाहर बस एक बार ऐसा करने के लिए अधिक उपयुक्त नहीं है? –

+0

और, echo | xcopy संयोजन में क्या है जो मूल फ़ाइल को प्रतिस्थापित करता है? –

+1

मैं सिर्फ ओपी से मूल ब्लॉक की प्रतिलिपि बनाता हूं :-) लेकिन सक्षम डेलएडएक्सप्शन [सुरक्षित टॉगलिंग तकनीकी] (http://stackoverflow.com/a/4531090/463115) – jeb

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