如何解决如何在此行上添加空格?
我正在制作域解析器,但我不喜欢文本在窗口边框处的方式。该行是set /p domainname=Enter Domain Name^> %ESC%[92m
我想在Enter Domain Name>
这是它的样子
因此它不会紧贴窗口边框,这会使它看起来更好一些。我将如何处理?对于如何解决这个问题,我一无所获。
解决方法
set /p
会在提示字符串的开头删除所有空白字符,因此即使提示字符串被引用,它也仍然无法使用。诀窍是先写一些非空格字符,然后再写overwrite it with 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%
,
作为替代方案,您可以使用提示技术显示任何文本消息(最长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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。