현재 텍스트 파일을 통해 배열 파일로 각 행을 배열에 배치 파일이 있습니다. 루프를 반복하고 배열의 모든 값에서 특정 수의 문자를 제거하고 싶습니다. 가능한가요?배치 파일에서 배열의 문자열 조작?
@ECHO off
findstr /C:"number" /C:"type" testFile.txt > oneresult.txt
set "file=oneresult.txt"
set /A i=0
timeout /t 1
echo ---------------Results--------------- > results.txt
for /f "tokens=*" %%x in (oneresult.txt) do (
call echo %%x >> results.txt
call set array[%i%]=%%x
set /A i+=1
)
call echo %i% files received >> results.txt
del "oneresult.txt"
그래서 지금은 testFile.txt에서 검색된 문자열을 인쇄 한 다음 결국 result.txt에 저장됩니다. testFile.txt의 모든 문자열에 처음 10자를 제거하고 싶습니다. 더 쉬운 방법이 있으면 알려주세요. 지금까지 이것이 내가 찾은 것입니다. 그러나 나는 또한 일괄 처리 멍청이입니다.
그냥 배열없이 파악하고 미래에 검색 할 수있다 다른 사람에 대한 답변을 게시 :
@ECHO off
findstr /C:"number" /C:"type" testFile.txt > oneresult.txt
set /A i=0
timeout /t 1
echo ---------------Results--------------- > results.txt
for /f "tokens=*" %%x in (oneresult.txt) do (
setlocal enabledelayedexpansion
call set print=%%x
call set newprint=!print:~32!
call echo !newprint! >>results.txt
endlocal
set /A i+=1
)
call echo %i% files received >> results.txt
del "oneresult.txt"
모든 어레이 관리 세부 사항을 RESULTS.TXT을 리디렉션 할 수 있습니다 [이 답변] (http://stackoverflow.com/questions/10166386/arrays-linked-lists-and-other-data-structures-in-cmd-exe-batch-script/10167990#10167990)에서 설명합니다. 예를 들어, : set array [! i!] = %% x' 그리고 for %% i in (! i!)는 echo! array [%% i] : ~ 32! ' – Aacini