2012-11-20 20 views
13

मैं किसी अन्य चरित्र के साथ पाठ की एक स्ट्रिंग में किसी चरित्र के सभी उदाहरणों को प्रतिस्थापित करने की कोशिश कर रहा हूं लेकिन मैं सफल नहीं हूं।स्ट्रिंग में वर्णों को प्रतिस्थापित करना

मान लीजिए पाठ

cat rat mat fat 

है मैं स्क्रिप्ट को बदलना चाहते सभी t's to p's

cap rap map fap 

क्या मैं निम्नलिखित लेकिन यह मेरे लिए थोड़ा करने के लिए लगता है।

SET /P MY_TEXT=ENTER TEXT: 

SET T2P=P 

SET NEW_TEXT=%TEXT=:T!T2P!% 

MSG * %NEW_TEXT% 
+0

सिर्फ 2 सेंट का प्रयास करें: - के बारे में निर्देश के लिए देखो का उपयोग कर! चर के लिए% की बजाय। – Claudio

उत्तर

6

आप गलत जगह पर = संकेत मिल गया है। प्रयास करें:

setlocal enabledelayedexpansion 
set /P MY_TEXT=ENTER TEXT: 
SET T2P=P 
set NEW_TEXT=%MY_TEXT:T=!T2P!% 
MSG * %NEW_TEXT% 

तुम भी विस्तार इसका उल्टा, यानी

set NEW_TEXT=!MY_TEXT:T=%T2P%! 
+0

अब यह एक संदेश बॉक्स है जिसमें टी = पी है जो नहीं है मैं बाद में क्या था –

+0

मैं देखता हूं कि आपका जवाब कब गलत है कहता है कि टेक्स्ट मेरा MYEX अब काम नहीं करता है :) –

+0

बस वैरिएबल नाम को ठीक करने के लिए संपादित किया गया .. डी ओह .. – Grhm

-1

आप इस तरह 'sed' इस्तेमाल कर सकते हैं:

echo "cat rat mat fat" | sed 's/t/p/g' # outputs "cap rap map fap" 
+0

कहता है कि बैच ऑपरेशन पहचाना नहीं गया है? –

+0

पहचाना नहीं गया, आपका क्या मतलब है? – hugo

+4

'sed' विंडोज़ पर पहचाना नहीं जाता है जब तक कि आप इसे स्थापित करने के अपने रास्ते से बाहर नहीं जाते। – Grhm

8

कर सकते हैं पाश के लिए के लिए इस

setlocal 
set string=cat rat mat fat 
set string=%string:t=p% 
संबंधित मुद्दे

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