批处理中的行,段注释

(2009-04-10 16:08:43)

  有些时候,我们需要在批处理中使用大段的注释,即连续的注释超过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 注释