Commenting multiple lines in DOS batch file

前端 未结 7 2099
温柔的废话
温柔的废话 2020-12-04 08:18

I have written huge MS DOS Batch file. To test this batch file I need to execute some lines only and want to hide/comment out remaining.

I have some existing comment

7条回答
  •  借酒劲吻你
    2020-12-04 09:02

    Another option is to enclose the unwanted lines in an IF block that can never be true

    if 1==0 (
    ...
    )
    

    Of course nothing within the if block will be executed, but it will be parsed. So you can't have any invalid syntax within. Also, the comment cannot contain ) unless it is escaped or quoted. For those reasons the accepted GOTO solution is more reliable. (The GOTO solution may also be faster)

    Update 2017-09-19

    Here is a cosmetic enhancement to pdub's GOTO solution. I define a simple environment variable "macro" that makes the GOTO comment syntax a bit better self documenting. Although it is generally recommended that :labels are unique within a batch script, it really is OK to embed multiple comments like this within the same batch script.

    @echo off
    setlocal
    
    set "beginComment=goto :endComment"
    
    %beginComment%
    Multi-line comment 1
    goes here
    :endComment
    
    echo This code executes
    
    %beginComment%
    Multi-line comment 2
    goes here
    :endComment
    
    echo Done
    

    Or you could use one of these variants of npocmaka's solution. The use of REM instead of BREAK makes the intent a bit clearer.

    rem.||(
       remarks
       go here
    )
    
    rem^ ||(
       The space after the caret
       is critical
    )
    

提交回复
热议问题