有些时候,我们需要在批处理中使用大段的注释,即连续的注释超过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 指向的标签
示例:
| gotohan 注释内容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" gotoSwitch%%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 |