2012-09-24 12 views
24

रंग आदेश cmd के पाठ का रंग बदलने के लिए खिड़कियों आदेश शीघ्र पृष्ठभूमि का रंग बदलने/पाठ के साथ क्या करना हैकैसे खिड़कियों बैच स्क्रिप्ट के साथ हर 1 सेकंड

रंग 0A - जहां 0 पृष्ठभूमि रंग है और एक है टेक्स्ट रंग

मैं 1,2,3,4,5,6,7,8,9, ए, बी, सी, डी के साथ एक सरणी का उपयोग कर विंडोज बैच स्क्रिप्ट में प्रत्येक 1 सेकंड में पाठ का रंग बदलना चाहता हूं , ई, एफ चुड़ैल रंग कोड हैं।

0 = Black  8 = Gray 
1 = Blue  9 = Light Blue 
2 = Green  A = Light Green 
3 = Aqua  B = Light Aqua 
4 = Red   C = Light Red 
5 = Purple  D = Light Purple 
6 = Yellow  E = Light Yellow 
7 = White  F = Bright White 

आदेश इस

color 01 
color 02 
color 03 
.... 
color 0E 
color 0F 

तरह दूसरा हर जाना जानी चाहिए और इन के लिए मैं कुछ थोड़ा स्क्रिप्ट नहीं मिली लेकिन यकीन है कि यह हर 1 सेकंड के लिए रंग बदलने के लिए काम करने के लिए कैसे नहीं im!

for /L %%i in (1,1,%n%) do echo !array[%%i]! 

या इस

@echo off CLS 
for /l %%a in (15,-1,1) do (
color 0A 
cls 
) 
pause 

या इस

SET COUNTDOWN=15 
:COUNTDOWNLOOP 
IF %COUNTDOWN%==0 GOTO END 
color 0A && %R1% 
CLS 
SET /A COUNTDOWN -=1 
GOTO COUNTDOWNLOOP 
:END 
+0

लेकिन यह संभव हो सकता है! कौन जानता है! – diti

+1

@Jay start/b cmd/k any.bat पृष्ठभूमि में बैच फ़ाइल चलाएगा। उदाहरण के लिए, मार्क की स्क्रिप्ट, स्वीकृत उत्तर लें, इसे चक्रकॉलर्स नामक बैच फ़ाइल में रखें, और उसके बाद स्टार्ट/बी cmd/k cycleColors.bat चलाएं, और आपकी स्क्रीन रंगों के माध्यम से चक्र करेगी जबकि आप जो कुछ भी चाहते हैं उसे करने की अनुमति देगी । – SgtPooki

उत्तर

19

इस बिल को फिट करना चाहिए। एक सुपर कष्टप्रद बात की तरह लगता है पर जा रहा है करने के लिए, लेकिन वहाँ तुम्हारे पास है:

@echo off 
set NUM=0 1 2 3 4 5 6 7 8 9 A B C D E F 
for %%x in (%NUM%) do ( 
    for %%y in (%NUM%) do (
     color %%x%%y 
     timeout 1 >nul 
    ) 
) 
+0

धन्यवाद @ मार्क, समाधान धन्यवाद! – diti

+1

रंग को रीसेट कैसे करें? –

+1

बस 'रंग' स्वयं इसे डिफ़ॉल्ट पर रीसेट कर देगा। – Mark

-2
विशेष कंप्यूटर रंग कोड पर

cmd खिड़की गुण में रंग मान का संपादन करके अलग आरजीबी रंग को सौंपा जा सकता। रंग पैलेट पर आसान क्लिक रंग और उनके आरजीबी मूल्यों को बदलें।

4

इस स्क्रिप्ट को आजमाएं। यह स्क्रीन की किसी भी स्थिति पर कोई भी टेक्स्ट लिख सकता है और अस्थायी फ़ाइलों या ".com, .exe" निष्पादन योग्य का उपयोग नहीं करता है। बस शर्मिंदा करें कि आपके पास windows \ system या windows \ system32 फ़ोल्डर्स में "debug.exe" निष्पादन योग्य है।

http://pastebin.com/bzYhfLGc

@echo off 
setlocal enabledelayedexpansion 
set /a _er=0 
set /a _n=0 
set _ln=%~4 
goto init 


:howuse --------------------------------------------------------------- 

    echo ------------------ 
    echo ECOL.BAT - ver 1.0 
    echo ------------------ 
    echo Print colored text in batch script 
    echo Written by BrendanLS - http://640kbworld.forum.st 
    echo. 
    echo Syntax: 
    echo ECOL.BAT [COLOR] [X] [Y] "Insert your text" 
    echo COLOR value must be a hexadecimal number 
    echo. 
    echo Example: 
    echo ECOL.BAT F0 20 30 "The 640KB World Forum" 
    echo. 
    echo Enjoy ;^) 
    goto quit 

:error ---------------------------------------------------------------- 

    set /a "_er=_er | (%~1)" 
    goto quit 

:geth ----------------------------------------------------------------- 

     set return= 
     set bts=%~1 

:hshift --------------------------------------------------------------- 

     set /a "nn = bts & 0xff" 
     set return=!h%nn%!%return% 
     set /a "bts = bts >> 0x8" 
     if %bts% gtr 0 goto hshift 
     goto quit 

:init ----------------------------------------------------------------- 

    if "%~4"=="" call :error 0xff 

    (
     set /a _cl=0x%1 
     call :error !errorlevel! 
     set _cl=%1 
     call :error "0x!_cl! ^>^> 8" 
     set /a _px=%2 
     call :error !errorlevel! 
     set /a _py=%3 
     call :error !errorlevel! 
    ) 2>nul 1>&2 

    if !_er! neq 0 (
     echo. 
     echo ERROR: value exception "!_er!" occurred. 
     echo. 
     goto howuse 
    ) 

    set nsys=abcdef 
    set /a _val=-1 

     for /l %%a in (0,1,15) do (
       for /l %%b in (0,1,15) do (
         set /a "_val += 1" 
         set byte=!nsys:~%%a,1!!nsys:~%%b,1! 
         set h!_val!=!byte! 
       ) 
     ) 

    set /a cnb=0 
    set /a cnl=0 

:parse ---------------------------------------------------------------- 

    set _ch=!_ln:~%_n%,1! 
    if "%_ch%"=="" goto perform 

    set /a "cnb += 1" 
    if %cnb% gtr 7 (
     set /a cnb=0 
     set /a "cnl += 1" 
    ) 

    set bln%cnl%=!bln%cnl%! "!_ch!" %_cl% 
    set /a "_n += 1" 
    goto parse 

:perform -------------------------------------------------------------- 

    set /a "in = ((_py * 160) + (_px * 2)) & 0xffff" 
    call :geth %in% 
    set ntr=!return! 
    set /a jmp=0xe 


    @for /l %%x in (0,1,%cnl%) do (
     set bl8086%%x=eb800:!ntr! !bln%%x! 
     set /a "in=!jmp! + 0x!ntr!" 
     call :geth !in! 
     set ntr=!return! 
     set /a jmp=0x10 
    ) 

    (
    echo.%bl80860%&echo.%bl80861%&echo.%bl80862%&echo.%bl80863%&echo.%bl80864% 
    echo.q 
    )|debug >nul 2>&1 

:quit 
+0

बहुत अच्छा उदाहरण: डी – msfclipper

0

मैं बहुत कुछ इसी तरह कर रहा हूँ। मैं तो बस कोडिंग में हो रही है, तो यह यह करने के लिए सबसे कारगर तरीका नहीं हो सकता है, लेकिन यह कैसे मैंने किया है:

@ECHO OFF 
ECHO HELLO 
ping localhost -n 1 >nul 
cls 
color 01 
ECHO HELLO 
ping localhost -n 1 >nul 
cls 
color 02 
ECHO HELLO 

और इसलिए एक और बहुत आगे है।

0

मैंने ऐसा करने का एक आसान तरीका बनाया है और इसे यथासंभव सरल बना दिया है। अंत में "रोकें" पर वह जगह है जहां आप अपना कोड जारी रखेंगे। Picture of executed Code

# [CODE]  [DESCRIPTION] 
# 
# echo. &  starts a new line 
# echo.   skips a line 
# PainText 08  08 is color code for gray Type "color ?" for color codes 
# " Red"  The space befor text gives space between the word befor it 


@echo off 
cls && color 08 

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="" 
call :PainText 08 "Gray" 
call :PainText 04 " Red" 
call :PainText 02 " Green" 
call :PainText 08 " Gray" 
echo. & 
call :PainText 02 "Line 2 Green No space" 
echo. & 
echo. 
call :PainText 01 "H" 
call :PainText 02 "E" 
call :PainText 03 "L" 
call :PainText 03 "L" 
call :PainText 05 "O" 
echo. 


goto :end 

:PainText 
<nul set /p "=%DEL%" > "%~2" 
findstr /v /a:%1 /R "+" "%~2" nul 
del "%~2" > nul 
goto :eof 

:end 
echo. 

pause 
1
echo off & cls 
set NUM=0 1 2 3 4 5 6 7 8 9 A B C D E F 
for %%y in (%NUM%) do ( 
    for %%x in (%NUM%) do (
     color %%y%%x & for /l %%A in (1,1,200) do (dir /s) 
     timeout 1 >nul 
    ) 
) 
pause 
+0

चूंकि एक उत्तर पहले ही स्वीकार कर लिया गया था, इस बारे में कुछ जानकारी शामिल करें कि आपका उत्तर बेहतर क्यों है – jhhoff02