不会是计算出来后狂按空格吧
这个应该是最简单的方法。。。
不过,如果想要自己计算,也不是不可以:
@echo off
    echo 输入宽度和高度:
    echo 例如: 3 3
    set /p s=
call :update %s%
pause
goto :eof
:update
setlocal ENABLEDELAYEDEXPANSION
    if %1 geq 40 echo 太宽了! && goto :eof
    rem 以下两句计算每一行前面应该留出的空格数
    set /a began = (40 - %1) / 2
    for /l %%i in (1,1,%began%) do set str=!str! 
    rem 以下两句计算第一行╭与╮之间"─"的数量
    set /a num = %1 - 2
    for /l %%i in (1,1,%num%) do set str1=!str1!─
    
    rem 显示第一行
    echo %str%╭%str1%╮
    rem 保存最后一行
    set str2=%str%╰%str1%╯
    rem 显示除了第一行和最后一行的中间的行
    set str1=%str1:─= %
    for /l %%i in (1,1,%2) do echo %str%│%str1%│
    echo %str2%    & rem 显示最后一行
endlocal
goto :eof