का उपयोग कर आउटपुट फ़ाइल के लिए डबल कोट्स के साथ स्ट्रिंग की इको। मैं विंडोज बैच फ़ाइल का उपयोग कर कॉन्फ़िगरेशन फ़ाइल को फिर से लिखने का प्रयास कर रहा हूं। मैं फ़ाइल की लाइनों के माध्यम से लूपिंग कर रहा हूं और उस लाइन की तलाश कर रहा हूं जिसे मैं एक निर्दिष्ट नई लाइन के साथ बदलना चाहता हूं।विंडोज बैच
मैं एक 'समारोह' उस फ़ाइल
:AddText %1 %2
set Text=%~1%
set NewLine=%~2%
echo "%Text%" | findstr /C:"%markerstr%" 1>nul
if errorlevel 1 (
if not "%Text%" == "" (
setlocal EnableDelayedExpansion
(
echo !Text!
) >> outfile.txt
) else (
echo. >> outfile.txt
)
) else (
set NewLine=%NewLine"=%
setlocal EnableDelayedExpansion
(
echo !NewLine!
) >> outfile.txt
)
exit /b
जब% पाठ% एम्बेडेड दोहरे उद्धरण चिह्नों के साथ एक स्ट्रिंग है समस्या यह है करने के लिए लाइन लिखते है। फिर यह विफल हो जाता है। शायद अन्य पात्र भी हैं जो इसे असफल होने का कारण बनेंगे। कॉन्फ़िगरेशन फ़ाइल में पाए गए सभी पाठों के साथ काम करने में सक्षम होने के लिए मैं इसे कैसे प्राप्त कर सकता हूं?
आप इसे मज़बूती से काम करने के लिए चाहते हैं , बैच का उपयोग न करें - पावरहेल या vbscript, या किसी अन्य स्क्रिप्टिंग भाषा का उपयोग करें। –
यह बहुत अच्छा होगा, लेकिन मेरे पास वास्तव में एक विकल्प के रूप में नहीं है। –
दरअसल समस्या यह है कि यहां गूंज में एम्बेडेड डबल कोट्स: echo% text% | findstr/C: "% markerstr%" 1> nul –