gpt4 book ai didi

function - 如何使用命令行参数来控制打印多色文本的批处理程序?

转载 作者:行者123 更新时间:2023-12-04 06:15:33 25 4
gpt4 key购买 nike

我有一个批处理脚本,可以在命令提示符的同一行上显示两种或多种颜色的文本。 (以下)

@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。然后打开命令提示符并键入“颜色”。这就是我希望它运行的方式;没有额外的命令、安装脚本、文件路径;只是一个简单的一两个词函数,所有杂乱的代码都在后台运行(看不见)。然而,上面的想法仍然不会让我从命令提示符指定我自己的文本或颜色......有什么想法吗?

最佳答案

编辑:拿3

创建文件夹 C:\Utilities .将此文件夹添加到您的 Path 环境变量,以便 Windows 在那里查找其他脚本和命令。

  • 打开控制面板、系统、高级系统设置(或 Windows XP 中的“高级”)、环境变量。
  • 在“系统变量”列表中,选择“路径”变量。
    不要搞砸这些下一步!
  • 按编辑。
  • 将光标置于行尾并确保未选择任何文本。
  • 添加文字 ;C:\Utilities ,包括分号。不要删除任何其他文本。
  • 按确定。
    再次轻松呼吸。
  • 根据需要多次按 OK 以关闭所有窗口。

  • :ColorText 后面的脚本为例标记并保存到 C:\Utilities\cecho.bat .放一个 @前面 echo off防止 echo off从出现在脚本中。

    CEcho.bat
    @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"
    )
    <Nul Set /p ".=%DEL%" > "%~2"
    FindStr /v /a:%1 /R "^$" "%~2" Nul
    Del "%~2" > Nul 2>&1
    EndLocal

    现在您可以从任何命令行或脚本中使用此命令。用法:
    CEcho color "text"

    编辑:回应你的评论:

    您可以通过插入以下行并替换 FindStr 来使用颜色的单词。线:
    Set Color=%1
    If %1==blue Set Color=9
    If %1==red Set Color=C
    etc...
    FindStr /v /a:%Color% /R "^$" "%~2" Nul

    现在你可以输入:
    CEcho red "apple"
    CEcho blue "water"
    CEcho A "grass"
    CEcho 6 "dirt"
    CEcho 26 "tree"

    请注意,颜色词区分大小写。

    关于function - 如何使用命令行参数来控制打印多色文本的批处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7290434/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com