我正在做一个域名解析器,我不喜欢文本在窗口边框的方式。这条线是
set /p domainname=Enter Domain Name^> %ESC%[92m
我想在上面写着的地方加一个空格Enter Domain Name>
这就是它看起来的样子
所以它不会卡在窗口边框上,这会让它看起来更漂亮。我该怎么做呢?我还没有找到任何关于如何解决这个问题的方法。
发布于 2020-08-13 17:08:43
set /p
去掉提示符字符串开头的所有空格字符,因此即使提示符字符串被引号引用,它仍然不起作用。诀窍是写一些非空格字符,然后用CR覆盖它
@echo off
setlocal EnableExtensions EnableDelayedExpansion
rem Get CR character
for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a"
set /p "domainname=x!CR! Enter Domain Name > %ESC%[92m"
echo %domainname%
发布于 2020-08-30 13:01:02
作为替代方法,您可以使用提示这项技术可以显示任何文本消息(最多511个字符),而不必担心前导空白字符。
它的工作原理如下:
set "prompt=Your text message"
cmd /d /k @echo off
setlocal EnableExtensions
call :getInput domainname " Enter Domain Name > %ESC%[92m"
echo domainname is [%domainname%]
pause
exit /b
:getInput ["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
https://stackoverflow.com/questions/63390512
复制相似问题