如何使用Windows批处理脚本获取文件最后一行中的最后一个单词? [英] How to get the last word in the last line in a file with Windows batch script?

查看:386
本文介绍了如何使用Windows批处理脚本获取文件最后一行中的最后一个单词?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个文件sample.txt,内容如下.

I have a file sample.txt with the content as below.

H|20170331|CIS
A||A1140|GRM  //header
A||A1140|GRM
A||A1140|GRM
A||A1140|GRM
A||A1140|GRM
T|20170331|5  //trailer

我需要最后一行中的最后一个令牌,即5. (这是标题标头行除外的行数).

I need the last token in the last line i.e. 5. (It's the count of the line except header trailer).

到目前为止,我尝试过以下方法;它给出了第一个令牌,即T,但是我需要最后一个令牌,即5.

As of now, I tried below; it's giving the first token, i.e. T, but I need the last token i.e. 5.

@echo off
rem for /f "skip=1 tokens=2,* delims=" %%a in (sample.txt) do set "variable=%%a"

rem for /f "delims=|" %%x in (sample.txt) do set "variable=%%x"
for /f "delims=|" %%G in (sample.txt) do set "variable=%%G"
echo %variable%

pause

请注意,该文件可以包含数千条记录,因此需要最后一个令牌.

Note the file can contain thousands of records so the last token is required.

推荐答案

假设您想摆脱//trailer,请添加一个空格作为定界符.

Presuming you want to get rid of the //trailer add a space as delimiter.

@Echo off
For /f "tokens=3delims=| " %%A in (sample.txt) Do Set LastRowCol3=%%A
Echo [LastRowCol3=%LastRowCol3%]

这篇关于如何使用Windows批处理脚本获取文件最后一行中的最后一个单词?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆