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

Article ID: 34760 - View products that this article applies to.
This article was previously published under Q34760
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: November 25, 2003 - 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: 
KB34760
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.

Give Feedback