Search code examples
batch-filebatch-processing

What does %%a mean? (Batch)


What does the %%a mean?
I understand the context but not how to use it. For example :

FOR %%a in (%HELP%) DO echo I don't Know what it means

Solution

  • %%a refers to the name of the variable your for loop will write to.

    Quoted from for /?:

    FOR %variable IN (set) DO command [command-parameters]
    
      %variable  Specifies a single letter replaceable parameter.
      (set)      Specifies a set of one or more files.  Wildcards may be used.
      command    Specifies the command to carry out for each file.
      command-parameters
                 Specifies parameters or switches for the specified command.
    
    To use the FOR command in a batch program, specify %%variable instead
    of %variable.  Variable names are case sensitive, so %i is different
    from %I.
    

    Example 1:

    for %%a in (A B C D E) do Echo %%a
    

    Produces

    A
    B
    C
    D
    E
    

    Example 2:

    for %%a in (A B C) do (for %%b in (1 2 3) do Echo %%a:%%b)
    

    Produces

    A:1
    A:2
    A:3
    B:1
    B:2
    B:3
    C:1
    C:2
    C:3