【发布时间】:2011-09-03 00:42:56
【问题描述】:
我有一个批处理脚本,可以在命令提示符的同一行上显示两种或多种颜色的文本。 (下)
@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"
)
echo say the name of the colors, don't read
call :ColorText 0a "blue"
call :ColorText 0C "green"
call :ColorText 0b "red"
echo(
call :ColorText 19 "yellow"
call :ColorText 2F "black"
call :ColorText 4e "white"
pause
goto :eof
:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof
但是,必须通过使用记事本编辑批处理文件预先在脚本中输入文本。我希望能够只打开命令提示符并输入如下内容:
cecho /blue hello world!
或
cecho blue "hello world!"
或者一些简单的东西,我可以提供颜色(最好是字符串而不是颜色代码)和文本(带或不带引号)。
我不知道这对你是否有用,但可以保存这部分脚本:
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof
(从 ":ColorText" 到脚本结尾) 并将其保存为“C:\windows\system32”中的“ColorText.bat”。然后在脚本的另一半,随处可见:
call :ColorText
改成:
call ColorText
(省略冒号) 并将该脚本保存为“C:\windows\system32”中的colors.bat。然后打开命令提示符并输入“颜色”。这就是我希望它发挥作用的方式;没有额外的命令、设置脚本、文件路径;只是一个简单的一两个字函数,所有杂乱的代码都在后台运行(看不见)。但是上面的想法仍然不允许我从命令提示符指定我自己的文本或颜色....有什么想法吗?
【问题讨论】:
-
不要将自己的文件放在系统位置。您可以更改
PATH环境变量以在您的个人资料中添加一个位置。
标签: function colors batch-file command