批处理文件:=此时意外

use*_*215 1 variables batch-file choice

最近我在批处理文件中遇到了另一个问题.在我想要执行某些操作的地方,我收到以下错误:

=此时出乎意料.

我以前遇到过这个错误,但总是由于我修复了一个小错误.这次我无法辨认出来.

choice /c 12b /n
if %errorlevel%==1 (
if not exist C:\ntbobdings\1.txt (
set bding=Variable
set bdingno=1
goto IfNot
)
Run Code Online (Sandbox Code Playgroud)

怎么了?这是一个很小的区域,但if %errorlevel%==1 (blah)似乎很好.

Mon*_*aft 6

问题是如果你使用的变量没有它返回的值 - 那就什么都没有.因此,您输入:

if ==value Echo Test.
Run Code Online (Sandbox Code Playgroud)

为了避免将这个变量包含在"'s中,即使它没有输入值:

if ""=="value" Echo Test.
Run Code Online (Sandbox Code Playgroud)

换句话说就是:

choice /c 12b /n
if "%errorlevel%"=="1" (
    if not exist C:\ntbobdings\1.txt (
    set bding=Variable
    set %bdingno%=1
    goto IfNot
))
Run Code Online (Sandbox Code Playgroud)

这应该工作正常,并帮助你理解什么是错的.

莫娜.

  • @aruuu道歉,你当然是对的.这就是我在略读答案时所得到的.我会删除我的评论,以防止将来混淆. (2认同)