[英]If statement variable assignment in batch file ignored
我是批处理文件编码的新手,正在尝试编写一个简单的If-Else语句。
我曾尝试使用其他问题中建议的延迟扩展,但似乎仍未获得正确的价值
@echo off
setlocal ENABLEDELAYEDEXPANSION
SET VAR=portrait
IF %VAR% == portrait do (
SET /a height=1920;
set /a width=1080;
) else do(
set /a height=1080;
set /a width=1920;
)
echo %height%
上面的代码将输出显示为1080,而根据我编写的逻辑,我希望输出1920。 有人可以帮我理解吗?
您发出的原因主要是因为没有诸如If / Do
或Else / Do
语句之类的东西。 另外,您应该记住Set /A
确实是用于算术的,并且您不是在做数学,只是将值设置为名称。
If "%VAR%" == "portrait" (
Set "height=1920"
Set "width=1080"
) Else (
Set "height=1080"
Set "width=1920"
)
Echo %height%
但是,在这种情况下,您仍然可以使用Set /A
来稍微缩短命令; 因为Set /A
允许在同一语句中使用多个名称为整数值。
If "%VAR%" == "portrait" (
Set /A height=1920, width=1080
) Else (
Set /A height=1080, width=1920
)
Echo %height%
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.