3

こんにちは、フォルダからプログラムを起動するプログラムを作成しています。コードは次のとおりです。

@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

ユーザーの入力に色を付ける方法を本当に知りたいです。たとえば、私のプロンプトは次のようになります

C:\> abcd

では、「abcd」部分だけに色を付けるにはどうすればよいですか?

編集:入力時に色を付けたい。これは、理解していないすべての人への私の最初の質問でした。

4

3 に答える 3

7

ピクル教授のコメントのように、独自のキー入力を記述してから、各キーを色付きで出力する必要があります。

バッチでの色付けは、バッチ ファイルに複数の色を含める方法を説明した Findstr で実行できますか?
xcopy を使用して単一のキーを取得できます。

@echo off
call :color_init
setlocal EnableDelayedExpansion

:keyLoop
call :GetKey
if not defined key exit /b
call :color 1a key
goto :keyLoop


:GetKey
set "key="
for /F "usebackq delims=" %%L in (`xcopy /L /w "%~f0" "%~f0" 2^>NUL`) do (
  if not defined key set "key=%%L"
)
set "key=%key:~-1%"
exit /b

:color_init
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
  set "DEL=%%a"
)
rem Prepare a file "X" with only one dot
<nul > X set /p ".=."
exit /b

:color
setlocal EnableDelayedExpansion
set "param=!%~2!"
set "param=!param:"=\"!"
findstr /p /A:%1 "." "!param!\..\X" nul
<nul set /p ".=%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%"
endlocal
exit /b

for /f "delims=" %%A in ('echo hello') do set "var=%%A"
echo %var%
exit /b
于 2013-03-01T14:33:12.060 に答える
1

はい、cmdcolorで可能です。入力の直前echo \033[93m、そしてecho \033[0mその後。これらのエコーの間に入力されたものはすべて黄色になります。

于 2014-02-13T12:31:23.340 に答える
0

cecho.bathttp ://www.codeproject.com/Articles/17033/Add-Colors-to-Batch-Filesというプログラムを使用でき ます

于 2013-03-01T08:55:57.547 に答える