我不知道我的语法有什么问题

时间:2015-07-15 23:27:07

标签: batch-file

我的代码如下所示

    set filename=A20150715.1600
    set today=%date:~10,13%%date:~4,2%%date:~7,2%
    set fileday=%filename:~1,8%
    if today == fileday
    (
    echo same
    )
    else
    (
    echo not same
    )

但是当我运行脚本时,当代码到达set fileday部分时,它会给出错误的语法错误,但似乎仍接受该值。但是当我尝试在if情况下检查两者时它不会回显相同,这意味着即使它们是相同的,它们也不会被认为是相同的。它甚至不会回应不一样。

怎么了?

2 个答案:

答案 0 :(得分:0)

  1. 使用%获取if
  2. 中的变量内容
  3. 在与前一个陈述相同的行上输入(
  4. 在与前一个陈述相同的行上输入else
  5. set filename=A20150715.1600
    set filename=A20150715.1600
    set today=%date:~10,13%%date:~4,2%%date:~7,2%
    set fileday=%filename:~1,8%
    if %today%==%fileday% (
        echo same
    ) else (
        echo not same
    )
    

答案 1 :(得分:0)

@echo off
set filename=A20150715.1600
set today=%date:~10,13%%date:~4,2%%date:~7,2%
set fileday=%filename:~1,8%
if %today%==%filename% (
echo same 
) else (
echo not same
)

pause

在%%中包装todayfilename声明它们是变量。没有它,程序会解释它们是纯文本。此外,else语句必须与if语句的右括号位于同一行。

详细了解if / else,click here

注意:为了一个好的程序,我添加@echo off以防止命令提示符出现,pause在程序结束时暂停程序。< / p>