2010-09-17 10 views
12

यह मूल प्रतीत हो सकता है लेकिन क्या एक txt फ़ाइल से स्ट्रिंग से char को हटाने के लिए बैच बनाने का कोई तरीका है। ?एक स्ट्रिंग से वर्ण निकालने के लिए बैच

मैं पहले से ही .txt फ़ाइल के अंदर है, तो इस

2005060.png 
2005070.png 
2005080.png 
2005090.png 

तो वहाँ केवल यह एक नया .txt फ़ाइल में दिखाने के लिए एक बैच फ़ाइल है कि अंत में .png निकाल देंगे बनाने के लिए एक रास्ता है

2005060 
2005070 
2005080 
2005090 

इस पर किसी भी मदद के लिए धन्यवाद! :)

+0

क्या मंच? विंडोज? यदि हां, तो क्या आपके पास PowerShell इंस्टॉल है? –

+0

मैं विंडोज प्लेटफॉर्म पर हूं – steven

उत्तर

19

आप इसे निम्न आदेश स्क्रिप्ट के अनुसार कर सकते हैं:

@setlocal enableextensions enabledelayedexpansion 
@echo off 
set variable=2005060.png 
echo !variable! 
if "x!variable:~-4!"=="x.png" (
    set variable=!variable:~0,-4! 
) 
echo !variable! 
endlocal 

यह आउटपुट:

2005060.png 
2005060 

जादू लाइन, ज़ाहिर है, है:

set variable=!variable:~0,-4! 

जो पिछले चार पात्रों को हटा देता है।


आप लाइनों के साथ एक फ़ाइल testprog.in है, तो यह है कि यह, जैसे:

2005060.png 
1 2 3 4 5  leave this line alone. 
2005070.png 
2005080.png 
2005090.png 

आप एक मामूली संशोधन का उपयोग कर सकते हैं:

@setlocal enableextensions enabledelayedexpansion 
@echo off 
for /f "delims=" %%a in (testprog.in) do (
    set variable=%%a 
    if "x!variable:~-4!"=="x.png" (
     set variable=!variable:~0,-4! 
    ) 
    echo.!variable! 
) 
endlocal 

जो आउटपुट:

2005060 
1 2 3 4 5  leave this line alone. 
2005070 
2005080 
2005090 

बस इसे ध्यान में रखें खाली लाइनों को आउटपुट नहीं करेगा (हालांकि यह उन पर रिक्त स्थान वाली लाइनें करेगा)।

यह आपकी इनपुट फ़ाइल में क्या अनुमति है इसके आधार पर कोई समस्या नहीं हो सकती है। यदि यह एक समस्या है, तो मेरी सलाह है कि CygWin या GnuWin32 (या पावरहेल यदि आपके पास यह आपके प्लेटफ़ॉर्म पर है) पर कुछ हाथ प्राप्त करें और कुछ वास्तविक स्क्रिप्टिंग भाषाओं का उपयोग करें।

+0

बस कोशिश की कि इसमें चलने में कोई समस्या नहीं है। एक बार फिर धन्यवाद!!! – steven

+0

@steven, आपको तब जवाब स्वीकार करना चाहिए। –

1

यदि आप .png फ़ाइलों की निर्देशिका को पढ़ने और एक्सटेंशन के बिना एक सूची आउटपुट करने का प्रयास कर रहे हैं? आज़माएं:

@echo off 

    echo. > testprog.txt 

    for /R "C:\Users\%USERNAME%\Documents" %%f in (*.png) do (
     echo %%~nf >> testprog.txt 
     ) 

    start testprog.txt 
7

यह मेरे लिए सबसे अच्छा काम किया:

@echo off 
for %%x in (*.png) do echo %%~nx 

credit

+0

बहुत बहुत धन्यवाद। एक जादू की तरह काम करता है। – knkarthick24

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