1

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

@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%给了我错误“无效参数-行=”。有人可以告诉我我做错了什么吗?

提前致谢。

4

1 回答 1

1

在循环中更改变量时,您需要使用delayed expansion,然后像!lines!使用 !variable! 一样引用变量!句法。

setlocal enabledelayedexpansion
于 2013-07-31T04:06:40.320 回答