2012-08-04 3 views
1

여기에서 달성하려는 것은이 파일의 마지막 줄에서 데이터를 가져 오는 것입니다. ftp://ftp.nhc.noaa.gov/atcf/tcweb/invest_al902012.invest. 나는 그것을 다운로드하여 .bat 파일을 통해 script.txt 파일로 저장했습니다. 이제 파일의 마지막 줄에서 위도 (13.5N)와 경도 (27.2W)와 압력 (1009)을 추출하여 새 파일에 기록하려고합니다. 그런 다음이 코드를 사용하여 원하는 :.bat 파일을 사용하여 텍스트 파일의 마지막 줄에서 특정 문자 추출

@echo off 
setlocal EnableDelayedExpansion 
for /f "delims=" %%x in (script.txt) do (
    set "previous=!last!" 
    set "last=%%x" 
) 
echo !previous!>> "test3.txt" 
for /f "delims=*" %%x in (test3.txt) do (
set line=%%x 
set chars=!line:~35,-125! 
echo !chars!>> "test.txt" 
) 

배치 코딩과 관련하여 저는 글을 모릅니다. 이것은 아마도 매우 비효율적이며 원하는 코드의 위도 부분 만 추출합니다. 파일에는 항상 마지막 줄에 같은 문자가 포함되어 있으므로 코드의! line 부분에 대한 개념을 파악하지 못하고 있다고 생각합니다. 어떤 도움이라도 대단히 감사합니다.

답변

2

파일은 쉼표로 구분되어 있으므로 FOR/F가 토큰으로 구문 분석하고 원하는 파일 만 보관하는 것이 더 쉽습니다.

이 간단한 솔루션은 각 행의 값을 분석하고 설정하지만 마지막 행만 기억합니다. 파일이 절대 커지지 않으면 성능은 좋아야합니다.

@echo off 
for /f "tokens=7,8,10 delims=," %%A in (script.txt) do (
    set lat=%%A 
    set long=%%B 
    set pres=%%C 
) 
echo latitude=%lat%, longitude=%long%, pressure=%pres% 

공백을 제거하려면 검색 및 바꾸기 만하면됩니다. 값이 때로는 비어 때로는하지 않을 때 그 토큰 계산을 던질 수 있기 때문에

echo latitude=%lat: =%, longitude=%long: =%, pressure=%pres: =% 

나는 단순히 FOR/F 문에서 구분 기호로 공백을 포함하지 않습니다.

+0

정말 감사합니다. – USTropics

관련 문제