When used in a command line, script, or batch file, %1 represents a variable or matched string. For example, in a Microsoft batch file, %1 can print what is entered after the batch file name.

In the example below, using the %1, the batch file prints “Hello xxxx it’s nice to meet you,” where xxxx is whatever you enter after the name of the batch file. So, if this batch file was named example.bat and you typed example Nathan, the batch file would return “Hello Nathan it’s nice to meet you.”

@echo offif %1== goto errorecho Hello %1 it’s nice to meet you goto end:errorecho type your name after batch file.:end

In other programming languages and script languages, the %1 may be substituted for \1 or $1. For example, in Perl, these could be used in a regular expression to print out the matched text or be used as a new variable. In the example below, if the $text variable contains any text, it prints “Hello xxxx,” where xxxx is what is matched. So, if $text = Joe Smith, the script would return “Hello Joe.”

if ($text =~ s/^([a-z]+)/i) { print Hello $1\n; }

Each of these matched strings or variables can also be extended upon by increasing the value. For example, the next matched string or variable found could be entered in as %2, \2, or $2. In the above batch file example, you could add a %2 to also print the last name as shown in the example below. If no last name was entered, the %2 would print nothing.

echo Hello %1 %2 it’s nice to meet you

In the case of the Perl example above, adding $2 would print the second matched string in the parentheses, as shown below.

if ($text =~ s/^([a-z]+) ([a-z]+)/i) { print Hello $1 $2\n; }

You can also add additional matched strings or variables with 3, 4, 5, etc. (E.g., %3, %4 or $3, $4.)

$, Percent, Programming terms, Variable

  • Batch file help and additional information.
  • How to create a computer program.