如何将 InputBox 批量居中?

How do i center a InputBox In Batch?

我正在开发一款名为 BatchOS 的批处理游戏,它基本上模仿了实际的操作系统。当我为 BatchOS 制作 Internet Explorer 时。我找到了我必须要的东西。我如何批量居中输入框?就像没有关于此的实际问题。我希望一切都居中。

截图:

The code says that The InputBox is centered but in Command Prompt. It's Not Centered at all.

我在 Windows 11 顺便说一句

它没有居中,因为要使它居中,您必须编写一段代码,每 1 毫秒重新设置一次代码,并检查中心的位置,然后将其居中。

这是我发现的可能对您有帮助的最接近的东西

echo                  URL:
set /p url=

但输入将在下方而不是居中。

set /P 命令修剪前导白色-spaces。但是有一个很好的解决方法。

首先,做:

for /F %%B in ('prompt $H^& for %%Z in ^(.^) do rem/') do set "_BS=%%B"

收回-space字。然后做:

set /P INPUT="#%_BS%    Prompt: "

在控制台显示上获得前导 SPACEs

诀窍是以 SPACE 以外的字符开始提示文本(如 #),然后将光标移回一个 back-space (),所以下面的第一个 SPACEs 覆盖那个字符,从而删除它。

因此实际打印的字符序列为:

# SPACE SPACE SPACE SPACE Prompt: SPACE

导致显示的文本:

SPACE SPACE SPACE SPACE Prompt: SPACE

ANSI 颜色代码会帮助你。

for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
  set ESC=%%b
)

set /p url=%ESC%[30m------------------%ESC%[0mURL: