首页 > 解决方案 > 如何在这一行添加空格?

问题描述

我正在制作域解析器,但我不喜欢文本位于窗口边框的方式。这条线是set /p domainname=Enter Domain Name^> %ESC%[92m

我想在它说之前添加一个空格Enter Domain Name>

这就是它的样子

这就是它的样子

所以它不会正好贴在窗口边框上,这会使它看起来更好一些。我该怎么办?我一直无法找到有关如何解决此问题的任何信息。

标签: batch-filecmdcommand-prompt

解决方案


作为替代方案,您可以使用提示技术来显示任何文本消息(最长 511 个字符),而不必担心前导空白字符。

它的工作原理如下:

set "prompt=Your text message"
cmd /d /k <nul
set /p "myVar="

把它放到一个可重用的函数中:

@echo off
setlocal EnableExtensions

call :getInput domainname " Enter Domain Name > %ESC%[92m"

echo domainname is [%domainname%]
pause
exit /b

:getInput <inputVar> ["Message String"]
setlocal DisableDelayedExpansion
set "Msg=%~2"
if defined Msg (
    REM For prompt strings, $ is an escape character so it should be escaped with another one.
    set "prompt=%Msg:$=$$%"
    "%COMSPEC%" /d /k <nul
)
endlocal
set /p "%~1="
exit /b

推荐阅读