Batch file 意外的评估路径

Batch file 意外的评估路径,batch-file,Batch File,我正在制作一个简单的批处理脚本。问题是它总是执行:rand代码块 以下是脚本: @echo off ver echo %COMSPEC% IF "%1"=="" goto help IF "%1"=="h" goto help IF "%1"=="-h" goto help IF "%1"=="help" goto help IF "%1"=="-help" goto help IF %1=="-random" goto rand IF %1=="-eval" goto eval :ran

我正在制作一个简单的批处理脚本。问题是它总是执行
:rand
代码块

以下是脚本:

@echo off
ver
echo %COMSPEC%

IF "%1"=="" goto help
IF "%1"=="h" goto help
IF "%1"=="-h" goto help
IF "%1"=="help" goto help
IF "%1"=="-help" goto help

IF %1=="-random" goto rand
IF %1=="-eval" goto eval

:rand
echo %@RANDOM[-10,10]
goto end

:eval 
echo %@eval[%2]
goto end

:help
echo Program sluzy do korzystania z funkcji @RANDOM @EVAL
echo aby skorzystac z @RANDOM, prosze uruchomic program z argumentem -random
echo aby skorzystac z @EVAL, prosze uruchomic program z argumentem -eval
goto end

:end

我做错了什么?

%1
周围加引号IF命令是字符串比较。比较运算符左侧的所有内容也必须位于比较运算符的右侧,才能使语句为TRUE。如果传递到批处理文件的值与任何测试不匹配,则在
:rand
之前可能还应该有一个
转到end
,以防止出错。