首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在此行中添加空格?

如何在此行中添加空格?
EN

Stack Overflow用户
提问于 2020-08-13 15:51:22
回答 2查看 161关注 0票数 2

我正在做一个域名解析器,我不喜欢文本在窗口边框的方式。这条线是

set /p domainname=Enter Domain Name^> %ESC%[92m

我想在上面写着的地方加一个空格Enter Domain Name>

这就是它看起来的样子

所以它不会卡在窗口边框上,这会让它看起来更漂亮。我该怎么做呢?我还没有找到任何关于如何解决这个问题的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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%
票数 2
EN

Stack Overflow用户

发布于 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
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63390512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档