2013-10-24 3 views
0

'ntuser.dat ntuser.dat.log와 같은 문자열이 있습니다. ntuser.ini test.bat test1.bat advice.20131024.98767 textdoc.txt'
다음 문자 중 하나에서 모든 문자를 제거하고 싶습니다. 'advice.20131024'까지 지정한 문자열.
어떻게해야합니까? Windows 배치 명령을 사용하면 어떻게합니까?
은 또한 사전에 변수
덕분에 결과 문자열을 저장해야특정 하위 문자열까지 문자 제거

+1

'advice.20131024' 이후에도 비트를 제거 하시겠습니까? – foxidrive

+0

예, 모든 문자 앞에 조언 .20131024. advice.20131024는 주어진 문자열의 임의의 위치에있을 수 있습니다. – user2907999

+0

하지만 나중에 물건을 정확하게 유지하고 싶습니까? – Monacraft

답변

1

(가) 문자열을 검색

set text=ntuser.dat ntuser.dat.log ntuser.ini test.bat test1.bat advice.20131024.98767 textdoc.txt 

:loop 
    if "%text:~0,6%"=="advice" goto exitLoop 
    set text=%text:~1% 
    goto loop 

:exitLoop 
    echo %text% 

(b)는 루프

@echo off 
    setlocal enableextensions enabledelayedexpansion 

    set text=ntuser.dat ntuser.dat.log ntuser.ini test.bat test1.bat advice.20131024.98767 textdoc.txt 
    set result= 

    for %%f in (%text%) do (
     set x=%%f 
     if "!x:~0,6!"=="advice" (
      set result=%%f 
     ) else (
      if not "!result!"=="" set result=!result! %%f 
     ) 
    ) 

    echo %result% 

(C와) foxidrive 응답을보십시오 (나는 항상 그것을 잊는다)

+0

'advice'뒤에 '.20131024'부분도 수표에 보관할 수 있습니까? 주어진 문자열에 'advice'로 시작하는 둘 이상의 하위 문자열이있을 수 있으므로 – user2907999

+0

값을 알고 있으면 비교 문자열과 하위 문자열의 길이를 조정하십시오. 두 예제 모두에서 ': ~ 0.6 %'를': ~ 0.15 % '로 변경해야합니다. –

+0

'advice '다음 부분. 실제로 현재 날짜입니다. 그래서 나는 그것을 얻고 그것을 다른 변수에 저장하고있다. 해당 변수를 비교에 추가하는 방법? – user2907999

4

이것은 문자열을 설정한다
이 변경되면 advice의 끝까지 모든 것을 삭제하고 advice
으로 바꾸고 나머지 문자열을 반향 출력합니다.

set "string=ntuser.dat ntuser.dat.log ntuser.ini test.bat test1.bat advice.20131024.98767 textdoc.txt" 
set "string=%string:*advice=advice%" 
echo "%string%"