Я знаю, что это цикл. правильно
/ f => Я предполагаю, что это означает для каждого файла в каталоге. Не совсем./f
является своего рода «многоцелевым коммутатором» - подробности см. for /?
delims = :.=> Я понимаю, это означает использование: в качестве разделителя.Не уверен, что.средства. определяет как :
, так и .
как разделители - строка будет разделена на каждый из этих символов
tokens = 1-4 => Кажется, это захватывает первые четырефайлы в каталоге нет, он захватывает первые четыре токена строки (разделенных определенными разделителями)
Цикл for /f
разбивает его на четыре токена: %%t
сначала, затем вниз по алфавиту: %%u
, %%v
и %%w
%% t => Не уверен, что это значит это имя переменной для(первый) токен
("% TIME: = 0%") => Понятия не имею, что это значит он заменяет каждый пробел в строке на ноль - подробности см. set /?
Таким образом, для каждого файла, соответствующего вышеуказанным критериям, он делает следующее: здесь не имеет ничего общего с файлами
set FILENAME = event-% 5 - %%t %% u %% v %% w => Что, я предполагаю, означает переименование каждого файла. нет, он создает переменную с именем filename
путем объединения нескольких строк
Что он действительно делает:
%time%
является внутренней переменнойи содержит текущее время.(Внимание, формат времени зависит от локальных настроек - фрагмент кода принимает формат 9:11:22.33
(перед 9
стоит пробел).
%time: =0%
заменяет пробел, в результате чего 09:11:22.33
,
Цикл for /f
разбивает эту строку на четыре токена (%%t
= 09
, %%u
= 11
, %%v
= 22
и %%w
= 33
.
%5
является пятым параметром командного файла (предположим, это whatever
)
set FILENAME=event-%5-%%t%%u%%v%%w
устанавливает переменную filename
равной event-whatever-09112233
Я рекомендую ставить в закладки SS64 и регулярно посещать ее. Вы также можете получить справку по каждой команде, выполнив ее с помощью переключателя /?
(for /?
, set /?
и т. Д.)