Missing <CR> after Batch Label Causes Repeat of Last Command

Article translations Article translations
Article ID: 34760 - View products that this article applies to.
This article was previously published under Q34760
This article has been archived. It is offered "as is" and will no longer be updated.
Expand all | Collapse all

SUMMARY

If the last line in a batch file is a label and there is no carriage return character after the label, the command immediately preceding the label will be executed twice.

The workaround for this problem is to include a carriage return at the end of a label.

Microsoft has confirmed this to be a problem in MS-DOS versions 3.3, 3.30a, 4.0, and 5.0. This problem was corrected in MS-DOS version 6.0.

MORE INFORMATION

The following batch file
echo hello <cr>
:label <cr>
<eof>
				
will produce the following output:
C>echo hello
hello

C>
C>
				
If the carriage return after the label is omitted, as follows
echo hello <cr>
:label <eof>
				
the file will produce the following output:
C>echo hello
hello
hello

C>
C>
				

Properties

Article ID: 34760 - Last Review: August 23, 2013 - Revision: 3.0
APPLIES TO
  • Microsoft MS-DOS 3.3 Standard Edition
  • Microsoft MS-DOS 3.3a
  • Microsoft MS-DOS 4.0 Standard Edition
  • Microsoft MS-DOS 5.0 Standard Edition
Keywords: 
kbnosurvey kbarchive KB34760

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com