Следующий фрагмент кода показывает, как это сделать:
@echo off
setlocal enableextensions enabledelayedexpansion
set revision=
for /f "delims=" %%a in (input.txt) do (
set line=%%a
if "x!line:~0,10!"=="xRevision: " (
set revision=!line:~10!
)
)
echo !revision!
endlocal
Его выходное значение равно 1234
по желанию.
setlocal
- это то, что я использую в каждом скрипте, чтобы гарантировать, что переменные обрабатываются известным способом. Оператор for
обрабатывает каждую строку во входном файле (бит delims
предотвращает токенизацию строки в отдельные слова).
Биты !line:~
- это подстроки, в которых !line:~0,10!
- первые десять символов, а !line:~10!
- остальные.
Итак, в основном, он проверяет каждую строку, чтобы увидеть, начинается ли она с "Revision: "
, и, если это так, извлекает оставшуюся часть строки для дальнейшего использования.