В пакетном файле как я могу получить последний токен в переменной независимо от того, является ли это число или слово, и независимо от того, сколько токенов / слов содержится в переменной.
Я будупередать аргумент в пакетный файл следующим образом:
C:\execbatch.bat "This is example one"
или C:\execbatch.bat "This is example number 2"
И тогда пакетный файл будет выглядеть следующим образом:
@echo off
SET var=%1
SET last=some command to grab the last token of %var%
echo %last%
exit
По существуМне нужно всегда иметь возможность получить последний токен, в этих примерах я бы хотел получить one
из примера 1 и 2
из примера 2.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Проблема заключается не в аргументах командной строки, а в упрощенном примере:
Дело в том, что я вызываю команду внутри пакетного файла и отправляю его выводв переменную, например, так:
C:\execbatch.bat memory
или C:\execbatch.bat cpu
А затем в пакетном файле:
For /F "Tokens=*" %%I in ('c:\monitor.exe -C custom_performance_counter -t %1 -w 80 -c 90') Do Set COMMANDOUTPUT=%%I
Echo %COMMANDOUTPUT%
Set CURRENTVALUE=some command to grab the last token of %COMMANDOUTPUT%
Echo "The current value is %CURRENTVALUE%"
Это будет выводить различные результаты в зависимости от проверкитип;однако в каждом случае последний токен / переменная всегда является текущим значением, хотя это либо число, либо слово.