• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Multi kolorwe linijki batch

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
+1 głos
4,000 wizyt
pytanie zadane 20 września 2015 w Inne języki przez b00ny Mądrala (6,050 p.)

Witam!

Tak jak w temacie. Jak robić multi-kolorowe linijki?

Komenda color a zamienia kolor Całego okienka.

A mi chodzi o jedną linijkę.

Przykład:

Tekst z kolorem d

Tekst z kolorem 9

Tekst z kolorem 2

Piszcie ;)

4 odpowiedzi

0 głosów
odpowiedź 20 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
wybrane 21 września 2015 przez b00ny
 
Najlepsza

Pewnie, że się da, przecież sam tak robiłem :P
I działa to nawet na nowszych Windowsach(na 7 działa). Masz tutaj dwa rozwiązania.

  • Użyć gotowego podprogramu, którego wywołujesz w programie wsadowym. Jeśli używasz systemu 32 bitowego, to możesz użyć pliku wbat.com(nie działa na systemach 64 bitowych), a jeśli systemu 64 bitowego to użyj pliku colous.exe - jeśli nie znajdziesz w necie to sam Ci uploadnę
  • Drugi sposób był taki, że nie używasz żadnych zewnętrznych plików, piszesz swoją własną "funkcje" (o ile można coś takiego w batchu nazwać funkcją :D), którą wywołujesz za pomocą call. Ten sposób jest chyba nawet lepszy, ale muszę poszukać kodu tego, bo dawno już się batchem nie zajmuję.

Okej znalazłem kod do tego drugiego rozwiązania. Pozwoliłem go sobie skopiować z fajnego forum o tej tematyce(dostips.com) - tu masz kod i jak tego używać: http://wklej.org/hash/2a1407d3683/

komentarz 20 września 2015 przez b00ny Mądrala (6,050 p.)
Po chwili się wyłącza. Ale tekst kolorwy sie pojawia.
komentarz 20 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Okej, tu masz linka: http://www.mediafire.com/download/zt7bzigtalc4z0f/colous.exe

Poradnika żadnego konktetnego Ci nie polecę, ale na pewno coś znajdziesz :)

P.S. Jakby ci jakieś antywirusopodobne coś kwiczało, to to zignoruj.
komentarz 20 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Wiem, że się wyłącza, dopisz po tym ostatnim callu w kolejnej linii pause>nul i będzie gites majonez :) A potem możesz sobie edytować ten plik, tylko zachowaj górę z pętlą for i tą ostatnią etykietę

komentarz 20 września 2015 przez b00ny Mądrala (6,050 p.)

Uf...

Pierwszy sposób działa. Obyło się bez zbędnych plików. Dzięki! yes

komentarz 20 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Nie ma za co :) Tylko, że ten sposób ma taką wadę, że musisz kolorować całe linijki, a nie możesz tego zrobić dla pojedynczych znaków, to wymaga już raczej zewnetrznego podprogramu. Pozdrawiam :)
0 głosów
odpowiedź 20 września 2015 przez hit02 Nałogowiec (33,970 p.)

Nie podałeś, na jakim OS pracujesz. Na Linux'ach, MAC'ach i innych mało się znam, więc opowiem o Windwosach.

Na Windows NT jest to nie możliwe. Było to możliwe na DOS, oraz Windowsach do NT. Jednak kolorki w konsoli są na tyle ważne, że możesz sobie zainstalować wiele różnych konsol z kolorkami, albo mogę ci polecić AnsiHack: http://gynvael.coldwind.pl/?id=187.

Dzięki temu będziesz mógł zmienić kolor tylko części tekstu. Dokładny opis użytkowania znajdziesz tutaj: http://gynvael.coldwind.pl/?id=128

Rozwiązanie powinno działać na wszystkich systemach od XP, do 10. Jedyne problemy, które zauważyłem to te, że na nowszych wersjach systemu mogą nie działać klucze rejestru podane w drugim linku. Rozwiązałem ten problem dodając do rejestru taki klucz:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"AutoRun"="Ścieżka\do\twojego\startowego\skryptu\bat"

gdzie jako ścieżkę AutoRun podajesz lokalizację skryptu, który będzie uruchamiany zawsze przy starcie konsoli.

Następnie na początku skryptu umieściłem coś takiego:

@echo off
if "%1" == "" (
	Ścieżka\do\twojej\zmodyfikowanej\konsoli\cmd /D /K "Ścieżka\do\twojego\startowego\skryptu\bat 1"
	exit
)
prompt $E[1;31m$P$E[0;32m$G$E[1;32m

Ten skrypt wywołuje zmodyfikowaną konsolę, a następnie ustawia mój ulubiony styl znaku zachęty.

komentarz 20 września 2015 przez b00ny Mądrala (6,050 p.)

Batch=MS-DOS

Pracuje na win 10.

A bez pobierania dodatkowych programow?

komentarz 20 września 2015 przez hit02 Nałogowiec (33,970 p.)
Nie da się. cmd.exe nie obsługuje kolorów poza zmianą ich w całym oknie.
komentarz 20 września 2015 przez hit02 Nałogowiec (33,970 p.)

Widać się myliłem, bo koledzy pokazali, że się da. W takim razie przepraszam za moją niekompetencję. smiley

komentarz 23 października 2015 przez JKluseczka Obywatel (1,430 p.)
Batch jest na Linuxie czy Macu? Daj linka :)
komentarz 23 października 2015 przez b00ny Mądrala (6,050 p.)
Na windowsie -,-
0 głosów
odpowiedź 20 września 2015 przez Pieniek Gaduła (3,330 p.)
edycja 20 września 2015 przez Pieniek

Jak jesteś zdesperowany łap to:
Głupie ale kolorowe : v
 

@echo off

color F8

md unikatowyfolder
cd unikatowyfolder
echo .>"Niebieski"
findstr /A:F1 /S "." "Niebieski"
echo .>"Zielony"
findstr /A:F2 /S "." "Zielony"
echo .>"Czerwony"
findstr /A:F4 /S "." "Czerwony"
echo .>"Zolty"
findstr /A:F6 /S "." "Zolty"

cd ..
rd /S /Q unikatowyfolder

pause>nul

 

komentarz 20 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Prawie dokładnie to samo już mu podałem :)

P.S.

pause>nul a nie pause>null

komentarz 20 września 2015 przez Pieniek Gaduła (3,330 p.)

ops dzięki!
(12 znaków)

–1 głos
odpowiedź 23 października 2015 przez JKluseczka Obywatel (1,430 p.)

Da się zrobić bez programów(chociaż jest to o wiele wiele wolniejsze...). Skopiowane od PrograMMingTips . Z filmu https://www.youtube.com/watch?v=m5p4SHHthtI Kod:

:c
setlocal enableDelayedExpansion

:colorPrint Color  Str  [/n]
setlocal
set "s=%~2"
call :colorPrintVar %1 s %3
exit /b

:colorPrintVar  Color  StrVar  [/n]
if not defined DEL call :initColorPrint
setlocal enableDelayedExpansion
pushd .
':
cd \
set "s=!%~2!"
:: The single blank line within the following IN() clause is critical - DO NOT REMOVE
for %%n in (^"^

^") do (
  set "s=!s:\=%%~n\%%~n!"
  set "s=!s:/=%%~n/%%~n!"
  set "s=!s::=%%~n:%%~n!"
)
for /f delims^=^ eol^= %%s in ("!s!") do (
  if "!" equ "" setlocal disableDelayedExpansion
  if %%s==\ (
    findstr /a:%~1 "." "\'" nul
    <nul set /p "=%DEL%%DEL%%DEL%"
  ) else if %%s==/ (
    findstr /a:%~1 "." "/.\'" nul
    <nul set /p "=%DEL%%DEL%%DEL%%DEL%%DEL%"
  ) else (
    >colorPrint.txt (echo %%s\..\')
    findstr /a:%~1 /f:colorPrint.txt "."
    <nul set /p "=%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%"
  )
)
if /i "%~3"=="/n" echo(
popd
exit /b


:initColorPrint
for /f %%A in ('"prompt $H&for %%B in (1) do rem"') do set "DEL=%%A %%A"
<nul >"%temp%\'" set /p "=."
subst ': "%temp%" >nul
exit /b


:cleanupColorPrint
2>nul del "%temp%\'"
2>nul del "%temp%\colorPrint.txt"
>nul subst ': /d
exit /b

Wystarczy wkleić do pliku batch i wpisywać call :c kolor(taki jaki się podaje w komendzie color np. FF) tekst.

Jak źle wkleiłem to jest tu: https://onedrive.live.com/?id=7D4DC487A67CDD9E!106&cid=7D4DC487A67CDD9E&group=0&parId=root&authkey=!AFTH0dDb9KipTQk&action=locate w folderze system\core\color.bat

Mam nadzieję, że pomogłem.

komentarz 23 października 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Nie wiem za co dałeś mi downvote, ale z przyjemnością się odwdzięczę :)

P.S.

ProgrammingTIPS to jest złodziej jakich mało. Jego snake jest zrypany z dostips.com, a "OS" w Batchu ukradł jegorowi337...
komentarz 25 października 2015 przez b00ny Mądrala (6,050 p.)
Na poważnie? :O Aż nie wiem co napisać :OO
komentarz 25 października 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Na poważnie. Co do tego "OS" to zapytaj jegor377, jest tu na forumie, a co do snake to porównaj sobie:

To jest oryginał z dostips.com - http://wklej.org/id/1825162/

A to przeróbka tego złodzieja. A najlepsze jest to, że kiedy napisałem prawdę w komentarzu, to usunął mój komentarz i link z opisu :P - http://wklej.org/id/1825163/

Ta daa...

A tutaj link do oryginału z dostips.com http://www.dostips.com/forum/viewtopic.php?t=4741

Podobne pytania

0 głosów
3 odpowiedzi 2,228 wizyt
pytanie zadane 21 września 2015 w Inne języki przez b00ny Mądrala (6,050 p.)
0 głosów
1 odpowiedź 802 wizyt
pytanie zadane 11 maja 2017 w Inne języki przez Szymon Krupa Nowicjusz (120 p.)
+1 głos
3 odpowiedzi 534 wizyt
pytanie zadane 30 kwietnia 2015 w C i C++ przez M4tthew Gaduła (4,480 p.)

93,439 zapytań

142,431 odpowiedzi

322,677 komentarzy

62,802 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...