这是我目前的代码
@echo off
IF "%~1"=="/?" goto :showhelp
set "137501arg="
set /a "137501arg=%~1"
set "137501arg2="
set /a "137501arg2=%~3"
IF "%137501arg%" LEQ "0" goto :validarguments
IF "%137501arg%" GEQ "0" goto :validarguments
:badarguments
Echo Error: Wrong data in arguments.
goto :eof
:validarguments
IF %137501arg2% LEQ 0 goto :validarguments1
IF %137501arg2% GEQ 0 goto :validarguments1
goto :badarguments
:validarguments1
IF "%~2"=="Return" goto :validargumentsreturn
IF "%~2"=="return" goto :validargumentsreturn
goto :badarguments
:validargumentsreturn
IF "%137501arg%"=="%137501arg2%" (
IF "%~4"=="(" (
set 137501argumentnumber=0
:validargumentsblock
set /a 137501argumentnumber=%137501argumentnumber% + 1
set /p 137501arg%137501argumentnumber%= More?
IF "%137501arg%"==")" goto :validargumentsparse
goto :validargumentsblock
:validargumentsparse
set 137501currentargument=0
:validargumentsparse1
set /a 137501currentargument=%137501currentargument% + 1
set 137501argument%137501currentargument%=%137501arg%%137501currentargument%
IF "%137501argument%137501currentargument%"==")" goto :validargumentsparse2
goto validargumentsparse1
:validargumentsparse2
set 137501currentargument1=0
:validargumentsparse3
set /a 137501currentargument1=%137501currentargument1% + 1
%137501argument%%137501currentargument1%
IF "%137501currentargument1%"=="%137501currentargument" goto :eof
)
%~4 %~5 %~6 %~7 %~8 %~9
goto :eof
)
goto :eof
:showhelp
Echo Usage: %~n0 varName Return Value Input
<小时/> 使用此命令在第一个和第三个参数最初工作时使用单个命令,但是当我添加:validargumentsblock部分时,它不再起作用。此外,当我尝试使用“(”而不是最后的命令给我这个错误,
Invalid number. Numeric constants are either decimal (17), hexadecimal (-x11), or octal (021).
Invalid number. Numeric constants are either decimal (17), hexadecimal (-x11), or octal (021).
The syntax of the command is incorrect.
<小时/> 我要做的是让它像IF语句一样运行,但只让它接受数字。我想让它像
一样工作
when Var Return 5 (
echo The var is equal to 5.
goto :eof
)
echo The var is not equal to 5.
<小时/> 我知道如果VAR EQU NUM与此类似,但它可以与字母一起使用,我试图阻止它接受任何字母。
<小时/>
@echo off
IF "%~1"=="/?" goto :showhelp
set "A137501arg="
set /a "A137501arg=%~1"
set "A137501arg2="
set /a "A137501arg2=%~3"
IF "%A137501arg%" LEQ "0" goto :validarguments
IF "%A137501arg%" GEQ "0" goto :validarguments
:badarguments
Echo Error: Wrong data in arguments.
goto :eof
:validarguments
IF %A137501arg2% LEQ 0 goto :validarguments1
IF %A137501arg2% GEQ 0 goto :validarguments1
goto :badarguments
:validarguments1
IF "%~2"=="Return" goto :validargumentsreturn
IF "%~2"=="return" goto :validargumentsreturn
IF "%~2"=="Returns" goto :validargumentsreturn
IF "%~2"=="returns" goto :validargumentsreturn
goto :badarguments
:validargumentsreturn
IF "%A137501arg%"=="%A137501arg2%" (
IF "%~5"=="(" goto validargumentsblock
goto validargumentsend
:validargumentblock
set A137501argumentnumber=0
:validargumentsblock1
set /a A137501argumentnumber=%A137501argumentnumber% + 1
set /p A137501arg%A137501argumentnumber%= More?
IF "%A137501arg%"==")" goto :validargumentsparse
goto :validargumentsblock
:validargumentsparse
set A137501currentargument=0
:validargumentsparse1
set /a A137501currentargument=%A137501currentargument% + 1
set A137501argument%A137501currentargument%=%A137501arg%A137501currentargument%%
IF "%A137501argument%A137501currentargument%"==")" goto :validargumentsparse2
goto validargumentsparse1
:validargumentsparse2
set A137501currentargument1=0
:validargumentsparse3
set /a A137501currentargument1=%A137501currentargument1% + 1
%A137501argument%%A137501currentargument1%
IF "%A137501currentargument1%"=="%A137501currentargument" goto :eof
goto :eof
:validargumentsend
%~4 %~5 %~6 %~7 %~8 %~9
goto :eof
)
goto :eof
:showhelp
Echo Usage: %~n0 varName Return(s) Value Input
Echo Example: When Variable Returns 5 Echo Hi
<小时/> 我怎么想阻止它计算