所以我正在开发一个简单的批处理程序,当它启动时我希望窗口很小,然后变大以填充屏幕的大部分。到目前为止,这就是我所拥有的:
@echo off
for /l %%I in (1,2,90) do (
set /a lines=%%I / 2
mode con cols=%%I
mode con lines=%lines%
)
timeout /t 3 /nobreak >nul
exit
在此之前,我使用'if'和'goto'语句即兴创作'for'循环,并且它运行良好,虽然它看起来不太好(它是非常跳跃) 。这是我的旧代码:
@echo off set /a y=14
set /a x=23
:start
mode con lines=%y%
mode con cols=%x%
if %x% geq 90 (
goto end
) else (
set /a x=%y% * 3
set /a y=%y% + 4
goto start
)
:end
timeout /t 3 /nobreak >nul
exit
但是,当我运行 新 代码时,mode con cols=%%I
正常工作,但mode con lines=%lines%
给出了错误“Invalid parameter - lines =” 。有人可以告诉我我做错了吗?
提前致谢。
答案 0 :(得分:1)
在循环中更改变量时,您需要使用delayed expansion
,然后使用!变量将变量称为!lines!
!语法。
setlocal enabledelayedexpansion