模式con无效参数

时间:2013-07-31 03:59:54

标签: batch-file

所以我正在开发一个简单的批处理程序,当它启动时我希望窗口很小,然后变大以填充屏幕的大部分。到目前为止,这就是我所拥有的:

@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 =” 。有人可以告诉我我做错了吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

在循环中更改变量时,您需要使用delayed expansion,然后使用!变量将变量称为!lines!!语法。

setlocal enabledelayedexpansion