What does the percent sign (% and %%) in a batch file argument mean?
I think I'm missing something because I can't seem to find what this means.
Example:
for /D %%A in (*) do "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
That line was supposed to use a command line version of 7zip
to compress individual folders, but I'm stumped as to what %%A
means in this context.
Solution 1:
The for
command needs a placeholder so you can pass along variables for use later in the query, we are telling it use the placeholder %A
, the reason the code you saw uses %%A
is because inside a batch file (which I assume is where you found this) the %
has a special meaning, so you must do it twice %%
so it gets turned in to a single %
to be passed to the for
command
To actually break apart what the command is doing, there is two parts to the command:
for /D %%A in (*) do .....
What this part says is for every folder in the current folder execute the following command replacing %%A
with the name of the currently processing folder.
..... "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
What this part says is execute the command "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
and replace the two %%A
's with the current record we are processing.