有些时候,我们需要在批处理中使用大段的注释,即连续的注释超过2行。那么,如何实现他呢?
方法有很多种,本文仅列举其中的一部分。
㈠、使用rem
注意:注释中不能使用重定向符和管道符;
当回显处于打开是时,rem 命令及注释内容将被显示;
rem 和注释之间要有空格。
示例:
|
rem 注释内容1 rem 注释内容2 rem 注释内容3 |
㈡、使用::
Windows XP 可以识别以冒号 (:) 开头作为标签的批处理程序行并且不会将它作为命令处理。如果某行以冒号开始,则该行的任何命令都将被忽略。
示例:
|
:: 注释内容1 :: 注释内容2 :: 注释内容3 |
㈢、使用echo >nul
注意:注释中不能使用重定向符和管道符;
echo 和注释之间要有空格。
示例:
|
echo 注释内容1>nul echo 注释内容2>nul echo 注释内容3>nul |
㈣、使用goto
注意:注释中不能使用goto 指向的标签
示例:
|
goto han 注释内容1 注释内容2 注释内容3 :han |
㈤、使用:注释
注意:注释中第一个字符不能是数字或字母;
示例:
|
:注释内容1 :注释内容2 :注释内容3 |
说明:在实际使用中,例如标签 :stsrt ,我们也可以认为他是注释。如下例:
:: ArgParse.bat - Parser of command line arguments
:: Will Sort - 2005-11-26 - WinXP_CMD/MSDOS7.10/MSDOS6.22
@echo off
:Init
for %%e in (directory_i directory_o filter_f filter_v log) do set %%e=
:ParseLoop
if "%1"=="" goto Start
for %%s in (i I f F v V l L o O) do if "%1"=="/%%s" goto Switch%%s
echo Error: Invalid switch '%1'!
goto Quit
:SwitchI
if "%directory_i%"=="" set directory_i=%2
goto NextArg
:SwitchO
if "%directory_o%"=="" set directory_o=%2
goto NextArg
:SwitchF
if "%filter_f%"=="" set filter_f=%2
goto NextArg
:SwitchV
if "%filter_v%"=="" set filter_v=%2
goto NextArg
:SwitchL
if "%log%"=="" set log=%2
goto NextArg
:NextArg
shift
shift
goto ParseLoop
:Start
echo.directory_i %directory_i%
echo.directory_o %directory_o%
echo.filter_f %filter_f%
echo.filter_v %filter_v%
echo.log %log%
:Quit
for %%e in (directory_i directory_o filter_f filter_v log) do set %%e=
:end
|
㈥、使用:标签 注释
示例:
|
:han 注释:下面的代码。。。 命令1 命令2 |
㈦、使用if not exist nul 注释
注意:注释中不能使用重定向符和管道符;
if not exist nul 和注释之间要有空格。
示例:
|
if not exist nul 注释内容1 if not exist nul 注释内容2 if not exist nul 注释内容3 |