【问题标题】:Batch - "goto was unexpected at this time"批处理 - “此时 goto 出乎意料”
【发布时间】:2017-10-06 06:27:43
【问题描述】:

这是我正在处理的批处理脚本:

@echo off

:programBEGIN
set FILE=R3D-%input1%.txt
mode con:cols=24 lines=25
color F

set /p input1=}} INPUT: 
cls
if %input1%=="" goto ERR1
goto programLIST

:programLIST
echo Hello

:ERR1
echo Test
pause

每当我尝试运行 bat 文件并且没有输入任何值时,它都会以“goto was unexpected at time”的快速提示关闭

我的 if 语句格式是否正确,还是它一直关闭的原因?

【问题讨论】:

标签: batch-file goto


【解决方案1】:

因为如果输入未定义,脚本如下所示:

if =="" goto ERR1

这是语法错误。

试试这样:

if "%input1%"=="" goto ERR1

【讨论】:

    【解决方案2】:

    不要使用那个 if 语句,而是试试这个:

    IF DEFINED input1 goto ERR1
    

    如果你必须使用普通的 if 语句,你可以试试这个:

    IF "%input1%"=="" goto ERR1
    

    只是为了确保。除此之外,我看不出问题出在哪里。

    【讨论】:

    • 应该是if defined input1 goto ERR1
    • 您的if defined 不正确。它应该if not defined input1 ...。如发布的那样,将询问 envvar ""input1 为空),或者如果 input1 包含 fred,则将询问 "fred"(包括引号)。尝试设置带引号的 envvar 将导致该变量名称的值报告并且不会更改该变量。 (嗯...这需要调查...)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多