[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] 可从外部调用参数执行的批处理脚本,能否精减内容?

以下第一个是网上找到的脚本,后面那个是我改的,能在其它脚本中用参数调用此脚本所指定的命令参数!

此脚本名为:ddd.cmd 在命令提示符中执行:ddd -h 能看到执行参数后的参数结果!
执行:ddd -h -b -d 能逐个执行所指定的参数!

如果按下面的来写好像要重复很多内容,搞了好久脑子转不过弯,不知道该如何改写能精减些?
另外,同问下有没有其它的写法?最终效果与此脚本相同?


大家帮看下,谢谢!此脚本内容如下:

这个是网上找到的:
@ECHO off

if "%1"=="" goto Sa
if "%1"=="/" goto :DSa
if "%1"=="?" goto :DSa
if "%1"=="/?" goto :DSa
if "%1"=="-h" goto :DSa
if "%1"=="/h" goto :DSa

:DSa
ECHO.yes
pause>nul
#################

下面这个是我参照其它例子改的,为方便测试加入数字:

@ECHO off

:: =========================
:: 参数1
if ""=="%1" goto enda
if "%1"=="/" goto DSa
if "%1"=="?" goto DSa
if "%1"=="/?" goto DSa
if "%1"=="-h" goto DSa
if "%1"=="/h" goto DSa
if "%1"=="b" goto BSa
if "%1"=="-b" goto BSa
if "%1"=="/b" goto BSa
if "%1"=="-d" goto DS2a
if "%1"=="/d" goto DS2a
If not ""=="%1" goto NONO1

goto enda

:DSa
ECHO.帮助参数 1
pause>nul
goto enda

:BSa
ECHO.备份参数 1
pause>nul
goto enda

:DS2a
ECHO.清空参数 1
pause>nul
goto enda

:NONO1
set err="%1"
echo.没有 %err% 这个参数! 1
pause>nul

:enda


:: =========================
:: 参数2
if ""=="%2" goto endb
if "%2"=="/" goto DSb
if "%2"=="?" goto DSb
if "%2"=="/?" goto DSb
if "%2"=="-h" goto DSb
if "%2"=="/h" goto DSb
if "%2"=="-b" goto BSb
if "%2"=="/b" goto BSb
if "%2"=="-d" goto DS2b
if "%2"=="/d" goto DS2b
If not ""=="%2" goto NONO2
goto endb

:DSb
ECHO.帮助参数 2
pause>nul
goto endb

:BSb
ECHO.备份参数 2
pause>nul
goto endb

:DS2b
ECHO.清空参数 2
pause>nul
goto endb

:NONO2
set err="%2"
echo.没有 %err% 这个参数! 2
pause>nul

:endb

:: =========================
:: 参数3
if ""=="%3" goto endc
if "%3"=="/" goto DSc
if "%3"=="?" goto DSc
if "%3"=="/?" goto DSc
if "%3"=="-h" goto DSc
if "%3"=="/h" goto DSc
if "%3"=="-b" goto BSc
if "%3"=="/b" goto BSc
if "%3"=="-d" goto D3Sc
if "%3"=="/d" goto D3Sc
If not ""=="%3" goto NONO3
goto endc

:DSc
ECHO.帮助参数 3
pause>nul
goto endc

:BSc
ECHO.备份参数 3
pause>nul
goto endc

:D3Sc
ECHO.清空参数 3
pause>nul
goto endc

:NONO3
set err="%3"
echo.没有 %err% 这个参数! 3
pause>nul

:endc

[ 本帖最后由 ZULGMG 于 2009-6-19 20:52 编辑 ]

返回列表