Я думаю, что что-то упустил, потому что не могу понять, что это значит.
Пример:
for /D %%A in (*) do "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
Эта строка должна была использовать версию командной строки 7zip
для сжатия отдельных папок, но я озадачен тем, что %%A
означает в этом контексте.
command-line
batch
batch-file
7-zip
Джим Кигер
источник
источник
Ответы:
for
Команда нуждается в заполнитель , так что вы можете передать переменные для последующего использования в запросе, мы говорим , что использовать заполнитель%A
, причину код , который вы видели использование%%A
происходит потому , внутри пакетного файла (который я предполагаю, где вы нашли это)%
имеет особое значение, так что вы должны сделать это дважды,%%
чтобы он был превращен в один,%
который будет переданfor
командеЧтобы фактически разбить на части то, что делает команда, у команды есть две части:
В этой части говорится, что для каждой папки в текущей папке выполните следующую команду, заменив
%%A
ее именем текущей обрабатываемой папки.Эта часть говорит, что выполните команду
"\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
и замените две%%A
на текущую запись, которую мы обрабатываем.источник
Это переменная.
В этом конкретном примере используется параметр каталога цикла FOR , который выполняет итерацию по каталогам и присваивает их %% A.
Это также не пример командной строки, а пример пакетного файла. В пакетных файлах вам нужно использовать %% A, а в командной строке вы просто используете% A.
источник
В вашем сценарии %% A является заполнителем для того, что повторяет цикл for (который / D указывает на каталоги). Таким образом, на каждой итерации цикла %% A является одним из каталогов.
Вы увидите %% вместо% в коде пакета. В командной строке вы увидите% вместо %%.
Так что знайте, что если вы скопируете код командного файла в командную строку и запустите его с использованием %%, произойдет ошибка, и наоборот.
источник