2012-02-21 7 views
8

मैं यह कैसे कर सकता हूं? मैंने कोशिश की:बैच फ़ाइल में var में पहले 3 वर्णों को हटाएं?

set /p var="" 
set var=%var:~3% 
echo %var% 

उदाहरण के लिए, अगर मैं टाइप "नमस्ते दुनिया" यह "लो दुनिया" गूंज चाहिए।

क्षमा करें मैं बहुत अस्पष्ट था। यही कारण है कि कोड वास्तव में कोड नहीं है, बल्कि यह है:

@echo off 
setlocal EnableDelayedExpansion 
set /p file="" 
set cnt=0 
for /F "delims=" %%j in (%file%.txt) do (
    set /A cnt+=1 
    set line!cnt!=%%j 
) 
set cde=0 
:code 
set /a cde+=1 
set line=!line%cde%! 
if %line:~0,9% == err echo.%line:~3% 
goto code 

मैं सिर्फ इसे कम अच्छी तरह से अभी भी त्रुटि दिखा बनाने के लिए कोशिश कर रहा था।

+0

कुछ भी गलत नहीं है, मेरे लिए काम करता है। –

+0

मेरे लिए भी काम करता है। – Kobra

उत्तर

7

मैंने अभी कोशिश की है और यह वैसे ही काम करता है जैसा आप उम्मीद करेंगे। आपको क्या मिल रहा है?

C:\>type test.bat 
set /p var="" 

set var=%var:~3% 

echo %var% 
C:\>test 

C:\>set /p var="" 
Hello World 

C:\>set var=lo World 

C:\>echo lo World 
lo World 

C:\> 

तो - ऐसा लगता है जैसे आप संभवतः दो चीजों की आवश्यकता: 1) अपने दूसरे लूप से बाहर निकलने के हालत के कुछ प्रकार। बीच :code लेबल और जब मिलान हालत मारा जाता है के लिए goto code (यानी, if %line:~0,3% == err) जानते हुए भी नहीं हैं कि क्या अपने कोड से वांछित है, मैं कुछ निम्नलिखित

if %line:~0,3% == err echo.%line:~3% & pause & exit 

यह रुकेगा और बाहर निकलें जब यह की तरह रखेंगे मिलान लाइन

2) कुछ प्रकार की निकास स्थिति यदि आप लाइनों के अंत तक पहुंचते हैं और कोई मिलान नहीं होता है। मेरा संदेह यह है कि आप जो त्रुटि देख रहे हैं, वह आपकी इनपुट फ़ाइल के रूप में संभवतः इस स्थिति को संतुष्ट नहीं कर रहा है।

+0

यह सही कोड नहीं था ... यह सिर्फ एक उदाहरण है। पकड़ो मैं कुछ कोशिश करने वाला हूँ। – BBMAN225

+0

यहां 'अगर% लाइन: ~ 0,3% == त्रुटि गूंज।% पंक्ति: ~ 3% >> "% फ़ाइल% .bat" यह वह हिस्सा है जहां मुझे कोई त्रुटि मिल रही है। – BBMAN225

+1

मुझे लगता है कि आप किसी त्रुटि में चल रहे हैं क्योंकि आपके पास मौजूद कोड आपके इनपुट फ़ाइल लाइन की सामग्री के माध्यम से पढ़ रहा है और फिर यह त्रुटि की जांच के माध्यम से लूपिंग कर रहा है। समस्या यह है कि आपका कोड कभी नहीं रोकता है। यह हमेशा के लिए लूपिंग रखता है, यही कारण है कि यह एक त्रुटि फेंक रहा है - शायद इस समय ** # लाइन: ~ 3 की तरह कुछ अप्रत्याशित था। ** यह आपको बता रहा है कि आप एक ऐसी लाइन को संसाधित करने की कोशिश कर रहे हैं जो मौजूद नहीं है। आपको बाहर निकलने की स्थिति चाहिए। मैं मदद करना चाहता हूं लेकिन आपने यह स्पष्ट नहीं किया है कि आप कोड को क्या करना चाहते हैं। –

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