Percent Signs Stripped from Batch File Text

This article was previously published under Q75634
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.
Using a percent sign (%) in a batch file requires that two percentsigns (%%) be specified.

For example, the command to display "5%" from a batch file would be :
   ECHO 5%%				
MS-DOS uses %1, %2, ... %9 as replaceable command line parameters. Forexample, before executing the command ECHO %1, %1 will be replacedwith the first parameter passed to the batch file. %0 is replaced withthe command used to execute the batch file.

A single percent sign on a line is treated as a "nul" character in abatch file. For example:
   ECHO %     is processed as ECHO   ECHO a%b   is processed as ECHO ab				
If a command contains two percent signs, MS-DOS will treat any charactersbetween them as an environment variable to be expanded. For example, if theSET command shows that the current environment variables are
   ECHO %PATH%     is processed as ECHO C:\DOS   ECHO a%b%       is processed as ECHO aC   ECHO a%b b%a    is processed as ECHO aa				
If there are no characters between the two percent signs, one percentsign is stripped off and the other will remain. This is why a FOR commandthat echos the name of each file with a .COM extension would be
   FOR %V IN (*.COM) DO ECHO %V				
but if the same command is placed in a batch file, the following isrequired:
   FOR %%V IN (*.COM) DO ECHO %%V				

"Microsoft MS-DOS Batch File Quick Reference," Microsoft Press.
6.22 3.20 3.21 3.30 3.30a 4.00 4.01 4.01a 5.00 5.00a 6.00 6.20

Article ID: 75634 - Last Review: 05/10/2003 00:29:27 - Revision: 2.0

  • Microsoft MS-DOS 3.1
  • Microsoft MS-DOS 3.2 Standard Edition
  • Microsoft MS-DOS 3.21 Standard Edition
  • Microsoft MS-DOS 3.3 Standard Edition
  • Microsoft MS-DOS 3.3a
  • Microsoft MS-DOS 4.0 Standard Edition
  • Microsoft MS-DOS 4.01 Standard Edition
  • Microsoft MS-DOS 5.0 Standard Edition
  • Microsoft MS-DOS 5.0a
  • Microsoft MS-DOS 6.0 Standard Edition
  • Microsoft MS-DOS 6.2 Standard Edition
  • Microsoft MS-DOS 6.21 Standard Edition
  • Microsoft MS-DOS 6.22 Standard Edition
  • KB75634