IF中的批处理参数。语法错误

时间:2017-10-26 12:42:40

标签: batch-file

这是我想用作cronjob的代码的开头。根据您输入的参数,您可以以不同的模式启动脚本。

问题是,如果输入错误或没有参数,我会收到语法错误,而不是使用回显。

" -v"在这一点上不能语法处理。

   @ECHO OFF
    SETLOCAL EnableDelayedExpansion

set v=False
set q=False

        if  %1 EQU -v (
            set v=True
        ) else (
        if  %1 EQU -q (
            set q=True
        ) else (
            ECHO  %DATE:~-4%%DATE:~-7,2%%DATE:~-10,2%_%Time% WARN False Parameter   %1 >> C:\Users\Jeff\Desktop\%DATE:~-4%%DATE:~-7,2%%DATE:~-10,2%_Log_2.34.log
REM Usage

            echo Usage  [-v]    for verbose mode
            echo        [-q]    for quiet mode
            echo.

            pause
            goto EOF
        )
    )

1 个答案:

答案 0 :(得分:0)

好的,我找到了答案。

   @ECHO OFF
    SETLOCAL EnableDelayedExpansion

set v=False
set q=False

        if /i "%~1" EQU "-v" (
            set v=True
        ) else (
        if /i "%~1" EQU "-q" (
            set q=True
        ) else (
            ECHO  %DATE:~-4%%DATE:~-7,2%%DATE:~-10,2%_%Time% WARN False Parameter   %1 >> C:\Users\Jeff\Desktop\%DATE:~-4%%DATE:~-7,2%%DATE:~-10,2%_Log_2.34.log
REM Usage

            echo Usage  [-v]    for verbose mode
            echo        [-q]    for quiet mode
            echo.

            pause
            goto EOF
        )
    )

/我将接受%1中的两个单词,如果%1为空,则不会失败。