如果批处理脚本中的语法不正确

时间:2017-10-24 13:32:29

标签: batch-file syntax-error

我的代码是:

@echo off
set /a var = %date:~-10,2%
IF ("%var%" EQU "3") 
(
echo hello
)
ELSE 
(
echo no
)

它给出了语法错误。

2 个答案:

答案 0 :(得分:1)

@echo off
set /a var = %date:~-10,2%
IF ("%var%" EQU "3") 

此代码将var设置为日期最后10个字符中前2个的值。

如果这两个字符为0809,则批次中的前导0表示八进制值,则会失败。除非您对该项使用了抑制前导零,否则需要

set /a var = 1%date:~-10,2% - 100

即将1后的2个字符串起来(假设您选择日期数字为101..131),然后减去100

if语句正在尝试将文字字符串'(“ var 的值'''与'”3“进行比较)'这两个字符串永远不会相等。语法错误是因为( 必须if位于同一物理行上,即您需要

IF %var% EQU 3 (

如果你使用这样的引号

IF "%var%" EQU "3" (

工作,因为您使用var设置了set /a。如果您只是使用子字符串%date:~-10,2%,那么因为它的长度为2,所以此文字比较需要033完全取决于您的日期-format。

答案 1 :(得分:0)

问题在于括号的位置。

试试这个:

@echo off
set /a var = %date:~-10,2%
IF "%var%" EQU "3" (
echo hello
) ELSE (
echo no
)