批次 - “后藤在这个时候意外”

问题描述:

下面是批处理脚本我的工作:批次 - “后藤在这个时候意外”

@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 

每当我尝试运行批处理文件并输入没有价值,它的快速提示关闭“goto在当时是意外的”

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

+0

可能的重复[为什么我的批处理文件的处理由于字符串与IF命令的比较而出现语法错误?](https://*.com/questions/34690602/why-is-processing-of-my-批处理文件退出与语法错误在字符串比较) – Mofi

因为如果输入没有定义的脚本是这样的:

if =="" goto ERR1 

这是一个语法错误。

尝试这样的:

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

而不是使用if语句,尝试此相反:

IF DEFINED "%input1%" goto ERR1 

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

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

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

+1

应该是'如果定义input1 goto ERR1' – DodgyCodeException

+1

您'如果定义'是不正确的。它*应该*为'如果没有定义input1 ...'。在发布时,envvar'“”'会被询问(空'input1'),或者如果'input1'包含'fred',则''fred''(包括引号)将被询问。尝试设置带引号的envvar将导致该变量名称的值报告并且不会更改该变量。 (嗯......这个有调查...) – Magoo