0

我有一个列表,我需要从这个列表中获取最后一个元素。

1 2 3 4 5 6 7 8 9 ...............35

我正在使用 for 循环进行迭代,即使用以下内容:

FOR /F "tokens=1* delims=" %%A 

现在在 for 循环中,令牌限制为最多 31 个。如何在 Windows 批处理脚本文件中克服这个问题?

4

3 回答 3

0
@echo off
setlocal 
set "mylist=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20"
set "mylist=%mylist% 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40"
:: so far we've only set up the program and established the list.

for %%a in (%mylist%) do set "value=%%a"

echo last value in %mylist% is %value%

...但现在我看到一个死灵法师在工作。尽管如此,工作已经完成,所以我不妨发布它。

在这种有点人为的情况下工作。根据实际情况可能是更好的方法。

于 2014-10-01T11:04:03.587 回答
0

这应该为您提供最后一个令牌,并且适用于批处理失败的极长行。

type "file.txt" | repl ".* (.*)" "$1" >"newfile.txt"

这使用了一个名为repl.bat(由 dbenham 提供)的帮助程序批处理文件 - 从以下网址下载: https ://www.dropbox.com/s/qidqwztmetbvklt/repl.bat

放置repl.bat在与批处理文件相同的文件夹中或路径上的文件夹中。

于 2014-10-01T11:51:57.607 回答
0
call :lasttoken 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

echo %last_token%

goto :eof

:lasttoken

if not "%2" == "" shift && goto :lasttoken

set last_token=%1

goto :eof
于 2013-10-13T20:53:01.183 回答