@Echo off
Set List="DXOpen_BuysideAnalytics_AmerEqty_SF_20180502.tsv";"DXOpen_BuysideAnalytics_AmerEqty_IM_20180502.tsv"
For %%I in (%List%) Do Ren %%I "%%~nI_EARLY%%~xI"
Команда For
перебирает элементы, содержащиеся в переменной List
(где элементы разделяются точками с запятой, запятыми, пробелами или символами табуляции). На каждой итерации цикла For
текущий элемент представляется переменной %%I
.
Прописная буква I
для имени переменной - мой выбор, обычно можно использовать любую букву, прописную или строчную. Прописные буквы отличаются от строчных.
"for variable" (%I
в данном случае) имеет необязательные модификаторы. Смотрите этот фрагмент из help for
или for /?
:
%~I - expands %I removing any surrounding quotes (")
%~fI - expands %I to a fully qualified path name
%~dI - expands %I to a drive letter only
%~pI - expands %I to a path only
%~nI - expands %I to a file name only
%~xI - expands %I to a file extension only
Я использую эти модификаторы для создания нового имени, вставляя _EARLY
между исходным именем %%~nI
и расширением %%~xI
Не запутайтесь в двух знаках процента - в пакетном файле их нужно удвоить; в командной строке используйте одиночные.