我正在编写一个批处理文件来执行其他一些程序.在这种情况下,我需要提示输入密码.我有办法屏蔽输入文本吗?我不需要打印*******字符而不是输入字符.Linux的密码提示行为(在打字时不打印)就足够了.
@echo off
SET /P variable=Password :
echo %variable%
Pause
Run Code Online (Sandbox Code Playgroud)
这将读取输入,但我不能使用这种方法掩盖文本.
我想知道是否可能在Windows批处理文件中的同一行上有不同的彩色文本,例如,如果它说
echo hi world
Run Code Online (Sandbox Code Playgroud)
我希望"hi"成为一种颜色,"世界"成为另一种颜色.也许我可以将COLOR命令设置为变量:
set color1= color 2
set color9= color A
Run Code Online (Sandbox Code Playgroud)
然后将它们一起部署在同一行上
echo hi world
Run Code Online (Sandbox Code Playgroud)
但我不知道我会怎么做.
我正在构建一个轻量级的ncurses库.到目前为止,它与VT100兼容终端的效果非常好,但是win32控制台无法将\033代码识别为转义序列的开头:
# include <stdio.h>
# include "term.h"
int main(void) {
puts(BOLD COLOR(FG, RED) "Bold text" NOT_BOLD " is cool!" CLEAR);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

为了加载ANSI.SYS驱动程序并识别ANSI/VT100转义序列,需要在C代码级别上做什么?
我已经为Jenkins安装了ANSI-color插件.在Jobs中,我使用默认配置文件'xterm'激活了该插件.
从批处理文件(Windows平台)打印到日志时,我无法弄清楚如何着色控制台日志的输出.
关于的文件
https://wiki.jenkins-ci.org/display/JENKINS/AnsiColor+Plugin
没用 没有示例如何实际打印颜色.
我尝试了几种不同的echo/print命令,但是我无法使用颜色.
任何暗示赞赏.
假设我有一个批处理文件,其中包含"填充",我想缩进提示字符串的开头以供用户输入.如果我使用空格,它将在运行时不显示,它只是忽略了空间.这个脚本举个例子:
@echo off
echo.
echo.
echo Hi.
echo Please input something.
echo.
set /P input=
Run Code Online (Sandbox Code Playgroud)
在=有三个空格之后,我期望输入的标记远离命令框的边缘,但是忽略这些空格.
我该如何解决这个问题?我使用的是Windows 7 SP1.
控制台的文本颜色在Windows 10中不起作用build 15063.296.
我挖了一下,发现自己输了.这是我发现的一切......
从几个讨论中,似乎在最新版本的Windows 10(#1,#2)中删除了对"虚拟终端序列"或"控制字符序列"的支持.有些人还建议降级一个git版本(这对我不起作用).
我试图cmd.exe从我的另一台机器上复制一个,版本10.0.10586.0和着色工作,但是,在进一步阅读和试验后,我不再确定问题所在.
见的比较输出ls --color=auto
git\git-cmd.exe,git\git-bash.exe,Windows的原始cmd.exe及以上cmd.exe
根据这个网站,对着色的支持不在于命令窗口,而是在a中conhost.exe,这提出了一个问题 - 为什么它在某些控制台中有效,有些则不在?
如果从cmd.exe启动powershell.exe,它将继承conhost设置,因为它附加到以前创建的控制台,而不是分配新的控制台; 这也启用了powershell.exe中的转义序列.
鉴于这句话,我尝试了下面的内容,只会加深我的困惑.我ls --color=auto在每个cmd版本中运行一个命令,然后尝试从较新的cmd运行较旧的cmd,反之亦然,并得到以下结果.(红色下划线是cmd v15063,绿色下划线是cmd v10586)
旧的,新的

新的,旧的

有趣/令人困惑的是与文件中相同内容d 的不同结果type和cat比较结果. ls --color=autotype
Python和Stackoverflow都是新手,我想要一些帮助.我想在Python中打印颜色,并且使用Google搜索但运气不佳:(我每次都感到困惑,但没有一个工作.这是我输入的代码.
answer = input ("Wanna go explore? OPTIONS : Yes or No")
if answer == "no":
print("Awww, come on, don't be like that, lets go!")
elif answer == "yes":
print ("Great! Lets go!")
else:
print("Whats that? I couldn't hear you!")
Run Code Online (Sandbox Code Playgroud)
现在,我希望OPTIONS为绿色,是蓝色,无红色.如何实现这一目标?
我正在尝试 Windows 10 控制台中对 VT-100 转义序列的新(有限)支持。支持的序列记录在https://msdn.microsoft.com/en-us/library/windows/desktop/mt638032(v=vs.85).aspx。
我特别感兴趣的是以下报告当前光标位置的序列。
ESC[6n - responds with ESC[<n>;<m>R,
where <n> is the row number, and <m> the column number
Run Code Online (Sandbox Code Playgroud)
响应作为键盘输入传递,并显示在屏幕上,但我不知道如何以编程方式利用这些信息。理想情况下,我想从批处理文件中将<n>和值放入环境变量中。<m>
但是,如果任何人都可以演示如何使用任何语言捕获变量,那么我也许可以利用这些知识来开发有效的批处理文件策略。
我可以使用以下名为 ANSI.BAT 的简单脚本来接近
@echo off
setlocal enableDelayedExpansion
for /f "delims=" %%C in (
'forfiles /p "%~dp0." /m "%~nx0" /c "cmd /c echo(0x1B"'
) do set "esc=%%C"
set "csi=%esc%["
echo(Inquiry:%csi%6n
set /p "pos="
echo response=!pos:%esc%=ESC!
Run Code Online (Sandbox Code Playgroud)
- 输出 -
C:\test>ansi
Inquiry:
^[[3;9R
response=ESC[3;9R
C:\test>
Run Code Online (Sandbox Code Playgroud)
一旦我在变量中得到响应,我就可以使用 FOR /F 轻松解析出值。我遇到的问题是,<Enter>在屏幕上出现响应后,我必须手动按下该键才能终止 SET /P …
您好我正在制作一个程序,将从一个文件夹启动一个程序.这是代码:
@echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
title Launcher
call :ColorText 0a "Launcher"
echo.
:CMD
set /p cmd=">>> "
if not defined cmd goto CMD
call "%CD%"\bin\%cmd%
echo %cmd%>"%CD%\Commands_Log\%cmd%
goto CMD
:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof
Run Code Online (Sandbox Code Playgroud)
我真的想知道如何为用户的输入着色.例如,我的提示就像
C:\> abcd
现在,我如何只为"abcd"部分着色?
编辑:我希望它在打字时被着色.对于每个不理解的人来说,这是我原来的问题.
通过启动命令提示符或cmd /e:off使用setlocal disableExtensions(在批处理文件中)或通过注册表值排除它们 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions(通过将值设置为 0),称为“扩展”的功能将被禁用(默认情况下打开)。
这会带来哪些变化?
我正在使用批处理文件设置LAN ping测试.我的代码对网站很有用,但对本地IP来说却很奇怪.我在3台知道IP的计算机上运行ping测试.无论我拔掉哪一个,当我运行下面的代码时,%errorlevel%在所有三台计算机上始终为0.它永远不会像在网站上那样等于1.我该如何解决这个问题?
@echo off
cls
Set IPaddress=www.google.com
PING %IPaddress% -n 1
call :PingTest
Set IPaddress=www.yahoo.com
PING %IPaddress% -n 1
call :PingTest
Set IPaddress=www.unabletoping.com
PING %IPaddress% -n 1
call :PingTest
pause > null
exit
:PingTest
IF %errorlevel% EQU 1 (echo "Server is Offline") else (GOTO:EOF)
Run Code Online (Sandbox Code Playgroud) 最近,我遇到了一个问题.
#include <stdio.h>
#include <stdlib.h>
void main()
{
system("color 1F");
}
Run Code Online (Sandbox Code Playgroud)
这可以打印Windows,但不能在Linux中打印.为什么?
batch-file ×8
cmd ×5
windows ×5
ansi-escape ×2
ansi-colors ×1
c ×1
colors ×1
echo ×1
jenkins ×1
ncurses ×1
ping ×1
plugins ×1
python ×1
terminal ×1