我有一個列表,我需要從列表中獲取最後一個元素。如何克服for循環在Windows腳本中的令牌限制
1 2 3 4 5 6 7 8 9 ...............35
我循環使用for循環,即使用下列內容:
FOR /F "tokens=1* delims=" %%A
現在在for循環令牌上限爲31。如何在Windows批處理腳本文件克服這個?
我有一個列表,我需要從列表中獲取最後一個元素。如何克服for循環在Windows腳本中的令牌限制
1 2 3 4 5 6 7 8 9 ...............35
我循環使用for循環,即使用下列內容:
FOR /F "tokens=1* delims=" %%A
現在在for循環令牌上限爲31。如何在Windows批處理腳本文件克服這個?
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
@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%
...但現在我看到一個亡靈巫師一直在工作。儘管如此,我仍然可以發佈它。
適用於這種有點人爲的情況。根據實際情況可能是更好的方法。
這應該會讓你獲得最後一個標記,並且將適用於批處理失敗的極長行。
type "file.txt" | repl ".* (.*)" "$1" >"newfile.txt"
這將使用名爲repl.bat
(由dbenham)的輔助批處理文件 - 下載來自:https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat
將repl.bat
在同一文件夾中的批處理文件或者是道路上的一個文件夾中。