| Correct, it skips the first 2 lines to avoid the header:|
! REG.EXE VERSION 3.0
 Also mostly correct, it is to avoid seeing any errors reg outputs, the escape character "^" is so that it doesn't get executed with the for loop, but by the for loop.
 It's actually "tokens=2*" if you look at it ;)
The default delimiters a "for /f" loop uses are a space and a tab.
The "*" means all tokens after the last specified token go into the last variable, including any delimiters.
Overall this means that all text after the last token goes into %%c.
"tokens=2,4*" would work but it means the for loop populates 3 variables.
The second and fourth token, with the last variable containing the rest of the text after the fourth token.
All that the two loops overall are doing is:
[a] Get all of the subkeys of "HKLM\software\microsoft\windows\currentversion\uninstall"
[b] Query each subkey looking for a value names "UninstallString"