我在这里要完成的是从此文件的最后一行提取数据ftp://ftp.nhc.noaa.gov/atcf/tcweb/invest_al902012.invest。我已经设法下载并通过.bat文件将其保存为script.txt文件。我现在想从文件的最后一行提取纬度(13.5N)和经度(27.2W)以及压力(1009)并将其写入新文件。然后我用这段代码做了我的一部分想:
@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部分的概念。任何帮助是极大的赞赏。
答案 0 :(得分: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语句中包含空格作为分隔符,因为当值有时是空白而有时不是空格时,它会抛弃令牌计数。