我写了这批代码:
@echo on
set variable=z
set t=%time:~0,2%
IF %t% LSS 12 (
%z%=_1
) ELSE (
%z%=_2
)
当从命令窗口运行批处理文件时,我收到此错误:
IF 14 LSS 12(_1)ELSE(_2)
'_2'不被识别为内部或外部命令,可操作程序或批处理文件。
我的代码中的错误在哪里导致此错误消息?
答案 0 :(得分:0)
我不确定你想要达到什么目标。我想你要检查条件%t%<12
并将变量z设置为_1(如果是这种情况),否则设置为_2。
您的错误是%z%=_1
不是valide声明。要为变量赋值,您必须始终使用SET
:
SET z=_1
将导致%z%保持值_1。所以你的代码可以修改如下:
@echo on
set variable=z
set t=%time:~0,2%
IF %t% LSS 12 (
SET z=_1
) ELSE (
SET z=_2
)
根据您的其余代码,您可能还需要在代码的开头添加行SETLOCAL EnableDelayedExpansion
,并将您的变量z作为!z!
访问,而不是在您的IF下方%z%
-construct。
编辑:
为了使你的评论适合你的评论,你应该这样做:
@echo on
set t=%time:~0,2%
IF %t% LSS 12 (
SET z=_1
) ELSE (
SET z=_2
)
set folderName=%date%%z%
mkdir %folderName%
更简单的方法是在IF-counstruct中设置folderName
:
@echo on
setlocal enabledelayedexpansion
set t=%time:~0,2%
IF %t% LSS 12 (
set folderName=%date%_1
) ELSE (
set folderName=%date%_2
)
mkdir !folderName!