**批处理文件**我正在编写批处理文件,它接受命令行参数并在参数匹配时做一些事情。但是当使用新参数再次运行批处理文件时,文件仍然使用旧参数运行。
第一次运行:file.bat -name hello -w 400 -r 320
第二次运行:file.bat -name hello -w 400。
当我第二次运行文件时,它仍然执行第一次运行,我的意思是说它仍然考虑第一次运行的参数。有谁知道为什么会这样?
提前致谢。
很抱歉没有发布批处理文件代码。下面提到的是代码。
set filename=
set rate=
set hidden=
set rate=
:recheck
if "%1"=="-help" goto :help
if "%1"=="-name" goto :filename
if "%1"=="-h" goto :hidden
if "%1"=="-w" goto :weight
if "%1"=="-r" goto :rate
if "%~1"=="" goto :endofcommandline
:filename
shift
set filename =%1
shift
goto :recheck
对于文件的另一部分,我使用变量“文件名”来做其他事情。我还在文件的开头和结尾使用 setlocal 和 endlocal 。对于每个 if 语句,我都有其他相应的标签,并将不同的变量设置为用户传递给它们的值(如果有的话)。有时,当我尝试打印出某个变量的值时,我也会得到 echo is off。如上所述,我使用的所有变量都在文件开头被清除。