批处理中的多种注释方法

:: 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=

(0)

相关推荐