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

批处理如何判断参数个数?

Linux的Shell中有如下的一段检查用户执行给定的批处理文件时,输入的参数个数是否合法,对应的批处理该如何实现呢?
    if [ $# -eq 0 ]
    then
        export ITV=1
        export CNT=1

    elif [ $# -eq 1 ]
    then
        if ([ "$1" = "-d" ])
        then
            export ITV=1
            export CNT=1
        else
            usase
        fi

    elif [ $# -eq 2 ]
    then
            export ITV=$1
            export CNT=$2

    else
        usase
    fi

问题比较急,在线等。
望高手帮忙解决一下,不胜感激。

TOP

呵呵,已经搞定了,共享给大家。
也请大家帮忙看看有没有什么问题。
rem check parameter
set /a param_num=0
set /a p1=0
set /a p2=0
:loop
if [%1] == [] goto :ret
set /a param_num+=1
if %param_num% equ 1 (set p1=%1)
if %param_num% equ 2 (set p2=%1)
shift
goto :loop
:ret

if %param_num% equ 0 (
    set ITV=1
    set CNT=1
) else (
    if %param_num% equ 1 (
        if "%p1%" == "-d" (
            set ITV=1
            set CNT=1
        ) else (
            call :usase
            goto :EOF
        )
    ) else (
        if %param_num% equ 2 (
            set ITV=%p1%
            set CNT=%p2%
        ) else (
            call :usase
            goto :EOF
        )
    )
)
1

评分人数

    • Batcher: 请编辑自己的帖子,把代码放到code标签里面 ...PB -2

TOP

返回列表