Saya tahu bahwa color bf
perintah mengatur warna seluruh jendela baris perintah tapi saya ingin mencetak satu baris dalam warna yang berbeda.
217
Saya tahu bahwa color bf
perintah mengatur warna seluruh jendela baris perintah tapi saya ingin mencetak satu baris dalam warna yang berbeda.
Jawaban:
Gunakan Sequence Escape ANSI.
Windows sebelum 10 - tidak ada dukungan asli untuk warna ANSI di konsol
Untuk versi Windows di bawah 10, konsol perintah Windows tidak mendukung pewarnaan keluaran secara default. Anda dapat menginstal Cmder , ConEmu , ANSICON atau Mintty (digunakan secara default di GitBash dan Cygwin) untuk menambahkan dukungan pewarnaan ke konsol perintah Windows Anda.
Windows 10 - Warna Baris Perintah
Mulai dari Windows 10, konsol Windows mendukung ANSI Escape Sequences dan beberapa warna secara default. Fitur yang dikirimkan dengan Pembaruan Threshold 2 pada November 2015.
Dokumentasi MSDN
Pembaruan (05-2019): ColorTool memungkinkan Anda untuk mengubah skema warna konsol. Itu bagian dari proyek Terminal Microsoft .
Demo
Perintah Batch
Itu
win10colors.cmd
ditulis oleh Michele Locati :sumber
.cmd
atau.bat
- keduanya harus bekerja. Tapi, saya pikir saya tahu mengapa itu tidak berhasil: sepertinya simbol pelepasan dihapus ketika memposting ke StackOverflow. Tolong jangan menyalin konten dari jawaban saya, gunakan konten dari sini sebagai gantinya: gist.githubusercontent.com/mlocati/…ESC
notepad ++ sebelum ... Anda dapat melakukan ini dengan ALT-codes menggunakan numpad dan tombol ALT kiri:L-ALT
+0
+2
+7
ESC
karakter dalam file Batch dengan cara ini:for /F %%a in ('echo prompt $E ^| cmd') do set "ESC=%%a"
Ini adalah kelelawar / .net hybrid yang dikompilasi sendiri (harus disimpan sebagai
.BAT
) yang dapat digunakan pada sistem apa pun yang telah menginstal kerangka kerja .net (jarang terjadi melihat jendela tanpa .NET framework bahkan untuk XP / 2003 tertua) instalasi). Menggunakan kompiler jscript.net untuk membuat exe yang mampu mencetak string dengan warna latar / latar depan yang berbeda hanya untuk baris saat ini.Inilah pesan bantuan:
Contoh :
coloroutput.bat -s "aa\nbb\n\u0025cc" -b 10 -f 3 -n -e
Anda juga dapat menemukan skrip ini di sini .
Anda juga dapat memeriksa fungsi warna carlos -> http://www.dostips.com/forum/viewtopic.php?f=3&t=4453
sumber
Ini bukan jawaban yang bagus, tetapi jika Anda tahu workstation target memiliki Powershell, Anda dapat melakukan sesuatu seperti ini (dengan asumsi skrip BAT / CMD):
Edit: (sekarang lebih sederhana!)
Ini jawaban lama tapi saya pikir saya akan menjelaskan & menyederhanakan sedikit
PowerShell sekarang termasuk dalam semua versi Windows sejak 7. Oleh karena itu sintaks untuk jawaban ini dapat disingkat menjadi bentuk yang lebih sederhana:
-fore
sebagai ganti-foregroundcolor
-back
sebagai ganti-backgroundcolor
echo
(daripada membuat file batch terpisah seperti di atas).
Contoh:
Informasi Lebih Lanjut:
Daftar lengkap warna dan informasi lebih lanjut tersedia di
- Dokumentasi PowerShell untuk
Write-Host
sumber
Windows 10 - TH2 dan lebih tinggi:
(alias Versi 1511, build 10586, rilis 2015-11-10)
Di Command Prompt:
Menggunakan kunci aktual: echo Ctrl+ [
[32m HI
Ctrl+[[0m
EnterAnda akan melihat "HI" hijau di bawahnya.
Nomor kode dapat ditemukan di sini:
Notepad:
Untuk menyimpan ini ke notepad, Anda dapat mengetik ESC ke dalamnya menggunakan: Alt+
027
dengan numpad, lalu[32m
bagian. Trik lain ketika saya menggunakan laptop, arahkan ulang baris di atas ke file untuk memulai, kemudian potong dan tempel:sumber
\033
tetapi tidak ... bagaimana saya bisa melakukan ini di Jawa?Anda cukup membuat file dengan nama kata yang akan dicetak, menggunakan findstr yang dapat mencetak dalam warna, dan kemudian menghapus file. Coba contoh ini:
Jalankan
color /?
untuk mendapatkan daftar warna.sumber
Anda bisa menggunakan ANSICON untuk mengaktifkan kode terminal ANSI di versi Windows yang lebih lama. Ada versi 32 dan 64 bit yang saya gunakan di Windows XP dan Windows 7.
sumber
Saya terganggu oleh kurangnya pewarnaan yang tepat dalam cmd juga, jadi saya pergi ke depan dan membuat cmdcolor . Itu hanya proksi stdout, yang mencari sekumpulan rangkaian kontrol ANSI / VT100 yang terbatas (dengan kata lain, seperti dalam bash), yaitu
echo \033[31m RED \033[0m DEFAULT | cmdcolor.exe
.Penggunaan dan unduhan .
sumber
cmdcolor.exe; PE32 executable for MS Windows (console) Intel 80386 32-bit
upx
. Bisakah Anda menghubungi saya melalui surel?Saya melihat ini karena saya ingin memperkenalkan beberapa warna teks sederhana ke file Batch Win7. Inilah yang saya pikirkan. Terima kasih atas bantuan Anda.
sumber
Ada jawaban yang diterima dengan lebih dari 250 suara positif. Alasan saya masih berkontribusi adalah karena
escape
karakter yang diperlukan untuk echo tidak diterima oleh banyak editor (saya menggunakan, misalnya, MS Code) dan semua solusi lain memerlukan beberapa perangkat lunak pihak ketiga (non-Windows-default).Mengatasi hanya menggunakan perintah batch biasa menggunakan
PROMPT
bukanECHO
. ThePROMPT
perintah menerimaescape
karakter dengan cara-apa-editor yang ramah sebagai$E
urutan karakter. (Cukup gantiEsc
dalam kode Escape ASCII ) dengan$E
.Berikut ini adalah kode demo:
CATATAN: Satu-satunya kelemahan adalah bahwa teknik ini bertabrakan dengan pengaturan warna cmd pengguna (
color
perintah atau pengaturan) jika tidak dikenal secara eksplisit.- Semoga ini bisa membantu karena ini adalah satu-satunya solusi yang dapat diterima untuk saya karena alasan yang disebutkan di awal. -
EDIT:
Berdasarkan komentar, saya melampirkan cuplikan lain yang terinspirasi oleh @Jeb. Itu:
ECHO
perintah "asli"PROMPT
nilai lokalECHO
keluaran pasti mempengaruhiPROMPT
warna sehingga warnanya harus diatur ulangsumber
for /F "delims=#" %%E in ('"prompt #$E# & for %%E in (1) do rem"') do set "\e=%%E"
echo
digunakan dalam batcolors / echo.bat "?set ASCII27=←
dengan Andafor /F "delims=#" %%E in ('"prompt #$E# & for %%E in (1) do rem"') do set "ASCII27=%%E"
. Ini menggunakan karakter pelarian yang dibuat oleh perintah prompt, tanpa mengubah prompt secara permanen (karenaprompt
perintah dijalankan dalam proses anak). Btw. Andaechos.bat
memiliki beberapa potensi optimasi ...Saya menambahkan jawaban untuk mengatasi masalah yang dicatat dalam beberapa komentar di atas: bahwa kode warna ansi inline dapat berperilaku tidak benar ketika berada di dalam loop FOR (sebenarnya, di dalam blok kode yang diapit). Kode .bat di bawah ini menunjukkan (1) penggunaan kode warna inline, (2) kegagalan warna yang dapat terjadi ketika kode warna inline digunakan dalam loop FOR atau dalam blok kode yang diapit, dan (3) solusi untuk masalah. Ketika kode .bat dijalankan, tes 2 dan 3 menunjukkan kegagalan kode warna, dan tes 4 tidak menunjukkan kegagalan karena mengimplementasikan solusi.
[EDIT 2020-04-07: Saya menemukan solusi lain yang mungkin lebih efisien daripada memanggil subrutin. Lampirkan frasa FINDSTR dalam tanda kurung, seperti pada baris berikut:
ENDEDIT]
Catatan: Dalam pengalaman saya (terbatas), masalah kode warna hanya muncul setelah input disalurkan ke FINDSTR di dalam blok kode. Begitulah cara .bat berikut mereproduksi masalah. Mungkin masalah kode warna lebih umum daripada setelah pemipaan ke FINDSTR. Jika seseorang dapat menjelaskan sifat masalahnya, dan jika ada cara yang lebih baik untuk menyelesaikannya, saya akan menghargainya.
sumber
Anda bisa menggunakan cecho .. Anda juga dapat menggunakannya untuk menanamkan langsung ke skrip Anda sehingga Anda tidak perlu membawa .com atau .exe
http://www.codeproject.com/Articles/17033/Add-Colors-to-Batch-Files
sumber
Saya baru saja mengkonversi dari Win 7 Home ke Win 10 Pro dan ingin mengganti batch yang saya panggil dari batch lain untuk menggemakan info dalam warna. Meninjau apa yang dibahas di atas, saya menggunakan yang berikut ini yang akan langsung menggantikan batch saya sebelumnya. Perhatikan penambahan "~" pada pesan sehingga pesan dengan spasi dapat digunakan. Alih-alih mengingat kode saya menggunakan huruf untuk warna yang saya butuhkan.
Jika% 2 berisi spasi membutuhkan "..."% 1 Warna Kuat pada hitam: R = Merah G = HIJAU Y = KUNING W = PUTIH
sumber
Anda harus mengulang urutan kode pelarian ANSI untuk mengubah warna teks: http://en.wikipedia.org/wiki/ANSI_escape_code
Sumber lain yang sangat bagus dari kode pelarian ini adalah http://ascii-table.com/ansi-escape-afterences.php
sumber
Masukkan baris berikut ke dalam file yang dipanggil
ColourText.bas
di desktop Anda.Simpan dan ketikkan yang berikut ini di prompt perintah.
File bernama ColourText.exe akan muncul di desktop Anda. Pindahkan ke folder Windows .
Untuk menggunakan Anda harus menggunakan dua kode karakter untuk mengatur warna misalnya
01
tidak1
.EG Untuk mengatur biru pada putih dengan tidak melewatkan teks apa pun, lalu merah pada teks putih, diakhiri dengan biru pada abu-abu.
atau
Juga
CLS
perintahnya menjadi menarik.Color
perintah tanpa parameter me-reset semua warna ke warna startup.Untuk mendapatkan kode warna, tambahkan angka-angka berikut bersama-sama. Gunakan Kalkulator dalam mode programmer. Ini adalah angka hex. Mereka dapat ditambahkan bersama misalnya Merah + Biru + FG Intensitas = 13 = D. Karena 10+ tidak digunakan latar belakang akan menjadi hitam. Kode warna HARUS dua karakter, misalnya
08
tidak8
.sumber
Untuk mendapatkan kerja ini pada Windows 10, Anda dapat mengaktifkan bendera ini:
ENABLE_VIRTUAL_TERMINAL_PROCESSING
.Dengan kunci registri ini Anda dapat mengatur ini secara default
[HKCU\Console] VirtualTerminalLevel dword 0x1
sumber
Alternatifnya adalah menggunakan NodeJS .
Berikut ini sebuah contoh:
Dan inilah hasilnya:
sumber
Seperti yang dikatakan Glenn Slayden dalam jawaban ini , Anda dapat menambah nilai yang tepat pada registri untuk membuat cmd "lebih berwarna".
sumber
Mengatur warna pada pernyataan log di PowerShell bukan teman yang penting. Anda dapat menggunakan
-ForegroundColor
parameter.Untuk menulis pesan konfirmasi.
Untuk menulis pesan kesalahan.
Untuk menulis pesan progres .
sumber
sumber
%ESC%
kosong, jadi ini tidak akan berfungsi.echo !white!
mengatur warna menjadi putih. Untuk kembali ke warna default (apa pun pengaturan pengguna untuk itu):color
perintah tanpa parameter melakukan itu.Kami biasa melakukan ini dengan kode terminal ANSI . Tidak yakin apakah mereka masih berfungsi, tetapi Anda bisa mencobanya.
sumber
Anda dapat menggunakan perintah warna untuk mengubah warna seluruh konsol
Hitam dan putih
Hitam dan hijau
sumber