Cách tùy chỉnh nền và văn bản trong PowerShell: Hướng dẫn đầy đủ

Cập nhật lần cuối: 03/10/2025
tác giả: Isaac
  • PSReadLine và $PSStyle cho phép sử dụng bảng màu đầy đủ cho các mã thông báo và đầu ra được định dạng.
  • ISE cung cấp $psISE.Options cho màu sắc, phông chữ và khôi phục nhanh.
  • Khả năng truy cập yêu cầu tỷ lệ tương phản 4.5:1; điều chỉnh Lựa chọn, Từ khóa và Chuỗi.
  • Duy trì các thay đổi về hồ sơ và sử dụng Write-Host để nhận thông báo kịp thời.

Tùy chỉnh màu sắc trong PowerShell

Nếu bạn thường xuyên làm việc với giao diện dòng lệnh, có lẽ bạn đã từng cân nhắc điều chỉnh màu sắc để nhìn rõ văn bản hơn hoặc đơn giản là để tạo môi trường dễ chịu hơn. PowerShell cho phép bạn tùy chỉnh hình nền, màu chữ và kiểu chữ ngay trong giao diện dòng lệnh cũng như thông qua các mô-đun và đối tượng cụ thể, thậm chí lưu các cài đặt này vĩnh viễn.

Ngoài các thiết lập nhanh từ giao diện, PowerShell còn bao gồm PSReadLine và, kể từ phiên bản 7.2, biến $PSStyle để tô màu các mã cú pháp và định dạng đầu ra. Nếu bạn đang sử dụng chủ đề sáng , nên định nghĩa lại màu sắc vì bảng màu mặc định được thiết kế cho nền tối, và một số sắc thái có thể trở nên khó đọc.

Xem và hiểu các cài đặt hiện tại của bạn với PSReadLine

Trước khi thao tác với bất kỳ thứ gì, tốt nhất nên kiểm tra xem cái nào đang hoạt động. Lệnh Get-PSReadLineOption hiển thị chế độ chỉnh sửa, lịch sử và bảng màu được áp dụng cho từng loại mã thông báo PSReadLine, cùng với các tùy chọn khác.

Get-PSReadLineOption

Kết quả bao gồm rất nhiều chi tiết. Trong số những thông tin hữu ích nhất là màu sắc cho mỗi token và chuỗi ANSI hiện tại cho thiết bị đầu cuối có nền tối (các giá trị mặc định điển hình):

EditMode                : Windows
AddToHistoryHandler     : System.Func`2
HistoryNoDuplicates     : True
HistorySavePath         : C:\Users\user1\AppData\Roaming\Microsoft\Wind...
HistorySaveStyle        : SaveIncrementally
HistorySearchCaseSensitive : False
HistorySearchCursorMovesToEnd : False
MaximumHistoryCount     : 4096
ContinuationPrompt      : >>
ExtraPromptLineCount    : 0
PromptText              : {> }
BellStyle               : Audible
DingDuration            : 50
DingTone                : 1221
CommandsToValidateScriptBlockArguments : {ForEach-Object, %, Invoke-Command, icm...}
CompletionQueryItems    : 100
MaximumKillRingCount    : 10
ShowToolTips            : True
ViModeIndicator         : None
WordDelimiters          : ;:,.[]{}()/\|^&*-=+'"-—―
AnsiEscapeTimeout       : 100
PredictionSource        : HistoryAndPlugin
PredictionViewStyle     : Inline
ViewCommandColor        : "`e    = "`e = "`e   = "`e   = "`e = 'red'
$psISE.Options.RestoreDefaultConsoleTokenColors()
  • Khôi phục mặc định() (ISE 2.0 trở lên): Khôi phục tất cả tùy chọn bảng điều khiển về cài đặt gốc và đặt lại thông báo.
    # Cambia el fondo de la Consola y restaura
    $psISE.Options.ConsolePaneBackgroundColor = 'orange'
    $psISE.Options.RestoreDefaults()
    
  • Khôi phục màu sắc mặc định của Token() (ISE 2.0+): Đặt lại màu mã thông báo bảng điều khiển Script.
    # Cambia el color de comentarios y restaura
    $psISE.Options.TokenColors = 'red'
    $psISE.Options.RestoreDefaultTokenColors()
    
  • Khôi phục màu sắc mặc địnhXmlToken() (ISE 3.0+): Khôi phục màu mã thông báo cho XML được hiển thị trong ISE.
    # Cambia comentarios en XML y restaura
    $psISE.Options.XmlTokenColors = 'red'
    $psISE.Options.RestoreDefaultXmlTokenColors()
    

Các thuộc tính chính cho màu sắc, kiểu chữ và hành vi

Dưới đây là toàn bộ các thuộc tính ISEOptions để kiểm soát giao diện và trải nghiệm người dùng. Bạn có thể gán tên màu, giá trị thập lục phân hoặc System.Windows.Media.Color tùy theo nhu cầu:

  • Khoảng thời gian tự động lưu phút (ISE 3.0+): Phút giữa các lần tự động lưu. Mặc định: 2.
    $psISE.Options.AutoSaveMinuteInterval = 3
    
  • CommandPaneBackgroundColor (ISE 2.0): Màu nền của bảng điều khiển lệnh.
    $psISE.Options.CommandPaneBackgroundColor = 'orange'
    
  • CommandPaneUp (ISE 2.0): Đặt bảng điều khiển Đồng chí lên hay không.
    $psISE.Options.CommandPaneUp = $true
    
  • Bảng điều khiểnMàu nền (ISE 3.0+): Nền bảng điều khiển.
    $psISE.Options.ConsolePaneBackgroundColor = 'red'
    
  • Bảng điều khiểnMàu nền trước (ISE 3.0+): Màu chữ trên bảng điều khiển.
    $psISE.Options.ConsolePaneForegroundColor = 'yellow'
    
  • ConsolePaneTextBackgroundColor (ISE 3.0 trở lên): Nền văn bản của bảng điều khiển.
    $psISE.Options.ConsolePaneTextBackgroundColor = 'pink'
    
  • ConsoleTokenColors (ISE 3.0+): Từ điển mã thông báo màu cho IntelliSense trong Console; các mã thông báo như Thuộc tính, Lệnh, Từ khóa, Chuỗi, Biến, v.v.
    $psISE.Options.ConsoleTokenColors = 'green'
    $psISE.Options.ConsoleTokenColors = 'magenta'
    
  • Gỡ lỗiMàu nền (ISE 2.0+): Nền văn bản gỡ lỗi.
    $psISE.Options.DebugBackgroundColor = '#0000FF'
    
  • Gỡ lỗiForegroundColor (ISE 2.0+): Cận cảnh văn bản gỡ lỗi.
    $psISE.Options.DebugForegroundColor = 'yellow'
    
  • Tùy chọn mặc định (ISE 2.0+): Bộ sưu tập có giá trị mặc định; hữu ích cho việc kiểm tra.
    $psISE.Options.DefaultOptions
    
  • LỗiMàu nền (ISE 2.0 trở lên): Nền văn bản lỗi trong Console.
    $psISE.Options.ErrorBackgroundColor = 'black'
    
  • LỗiForegroundColor (ISE 2.0 trở lên): Lỗi màu văn bản trong Console.
    $psISE.Options.ErrorForegroundColor = 'green'
    
  • Tên phông chữ (ISE 2.0+): Phông chữ được sử dụng trong Script và Console. Để biết đề xuất phông chữ, hãy xem chọn phông chữ tốt nhất.
    $psISE.Options.FontName = 'Courier New'
    
  • Cỡ chữ (ISE 2.0+): Kích thước phông chữ (8–32) cho Script, Command và Output.
    $psISE.Options.FontSize = 20
    
  • IntellisenseTimeoutInSeconds (ISE 3.0+): Thời gian chờ IntelliSense để giải quyết (mặc định là 3).
    $psISE.Options.IntellisenseTimeoutInSeconds = 5
    
  • MruCount (ISE 3.0+): Số lượng tệp gần đây trong menu Mở (mặc định là 10).
    $psISE.Options.MruCount = 5
    
  • OutputPaneBackgroundColor (ISE 2.0): Màu nền của bảng điều khiển đầu ra.
    $psISE.Options.OutputPaneForegroundColor = 'gold'
    
  • OutputPaneTextForegroundColor (ISE 2.0): Văn bản nổi bật trong Đầu ra.
    $psISE.Options.OutputPaneTextForegroundColor = 'blue'
    
  • OutputPaneTextBackgroundColor (ISE 2.0): Nền văn bản trong Đầu ra.
    $psISE.Options.OutputPaneTextBackgroundColor = 'pink'
    
  • ScriptPaneBackgroundColor (ISE 2.0+): Nền bảng điều khiển kịch bản.
    $psISE.Options.ScriptPaneBackgroundColor = 'yellow'
    
  • ScriptPaneForeGroundColor (ISE 2.0 trở lên): Nổi bật trên các tệp không phải tập lệnh trong bảng Tập lệnh.
    $psISE.Options.ScriptPaneBackgroundColor = 'green'
    
  • Trạng thái khung tập lệnh đã chọn (ISE 2.0+): Vị trí bảng điều khiển tập lệnh: “Trên cùng”, “Bên phải” hoặc “Phóng to”.
    $psISE.Options.SelectedScriptPaneState = 'Top'
    $psISE.Options.SelectedScriptPaneState = 'Right'
    $psISE.Options.SelectedScriptPaneState = 'Maximized'
    
  • Hiển thị đoạn mã mặc định (ISE 3.0 trở lên): Hiển thị hoặc ẩn đoạn trích theo mặc định trên Ctrl+J.
    $psISE.Options.ShowDefaultSnippets = $false
    
  • Hiển thịIntellisenseInConsolePane (ISE 3.0 trở lên): Bật gợi ý IntelliSense trong Console.
    $psISE.Options.ShowIntellisenseInConsolePane = $false
    
  • Hiển thịIntellisenseInScriptPane (ISE 3.0 trở lên): Kích hoạt IntelliSense trong Script.
    $psISE.Options.ShowIntellisenseInScriptPane = $false
    
  • Hiển thị số dòng (ISE 3.0 trở lên): Số dòng trong bảng Script.
    $psISE.Options.ShowLineNumbers = $false
    
  • Hiển thịPhác thảo (ISE 3.0+): Thu gọn/mở rộng mã trong Script.
    $psISE.Options.ShowOutlining = $false
    
  • Hiển thị thanh công cụ (ISE 2.0 trở lên): Hiển thị thanh công cụ ISE.
    $psISE.Options.ShowToolBar = $true
    
  • Hiển thị cảnh báo trước khi lưu khi chạy (ISE 2.0+): Cảnh báo trước khi lưu khi chạy.
    $psISE.Options.ShowWarningBeforeSavingOnRun = $true
    
  • Hiển thị cảnh báo cho tệp trùng lặp (ISE 2.0+): Cảnh báo khi mở cùng một tệp trong nhiều tab.
    $psISE.Options.ShowWarningForDuplicateFiles = $true
    
  • TokenColors (ISE 2.0+): Từ điển mã thông báo màu cho IntelliSense trong Script (Thuộc tính, Lệnh, Từ khóa, v.v.).
    $psISE.Options.TokenColors = 'green'
    $psISE.Options.TokenColors = 'magenta'
    
  • Sử dụngEnterToSelectInConsolePaneIntellisense (ISE 3.0 trở lên): Sử dụng Enter để chọn trong Console IntelliSense.
    $psISE.Options.UseEnterToSelectInConsolePaneIntellisense = $false
    
  • Sử dụngEnterToSelectInScriptPaneIntellisense (ISE 3.0 trở lên): Sử dụng Enter để chọn trong Script IntelliSense.
    $psISE.Options.UseEnterToSelectInConsolePaneIntellisense = $true
    
  • Sử dụng LocalHelp (ISE 3.0+): F1 mở trợ giúp cục bộ hoặc trực tuyến.
    $psISE.Options.UseLocalHelp = $false
    $psISE.Options.UseLocalHelp = $true
    
  • VerboseBackgroundColor (ISE 2.0+): Nền văn bản dài dòng.
    $psISE.Options.VerboseBackgroundColor = '#0000FF'
    
  • Màu nền trước chi tiết (ISE 2.0 trở lên): Văn bản dài dòng ở phía trước.
    $psISE.Options.VerboseForegroundColor = 'yellow'
    
  • Cảnh báoMàu nền (ISE 2.0+): Nền văn bản cảnh báo.
    $psISE.Options.WarningBackgroundColor = '#0000FF'
    
  • Cảnh báoForegroundColor (ISE 2.0+): Cận cảnh văn bản cảnh báo.
    $psISE.Options.WarningForegroundColor = 'yellow'
    
  • Màu sắc XmlToken (ISE 3.0+): Từ điển mã màu cho nội dung XML.
    $psISE.Options.XmlTokenColors = 'green'
    $psISE.Options.XmlTokenColors = 'magenta'
    
  • Zoom (ISE 3.0+): Kích thước văn bản tương đối (20–400; mặc định là 100).
    $psISE.Options.Zoom = 200
    

Bạn cũng có thể xem ảnh chụp nhanh cấu hình mặc định của ISE. Nó sẽ hiển thị cho bạn các phông chữ, màu sắc và từ điển mã thông báo như khi mới cài đặt, điều này rất hữu ích cho việc so sánh.

$psISE.Options.DefaultOptions

Thay đổi màu sắc từ giao diện Windows (CMD và PowerShell)

Nếu bạn không muốn chỉnh sửa tập lệnh, bạn cũng có thể điều chỉnh màu sắc trực tiếp từ cửa sổ. Nhấp chuột phải vào thanh tiêu đề CMD hoặc PowerShell , chọn Thuộc tính, rồi mở tab Màu sắc.

  Cách kiểm tra tình trạng ổ cứng hoặc ổ SSD của bạn bằng CrystalDiskInfo

Đặt hình nền và màn hình khóa bằng PowerShell

Ngoài việc thay đổi màu sắc giao diện dòng lệnh, bạn có thể thiết lập hình nền máy tính bằng tập lệnh, thậm chí thay đổi hình nền đăng nhập từ tập lệnh. Có các hướng dẫn dành cho Windows Server 2012 R2/2016/2019 và Windows 10/7 hướng dẫn cách thực hiện việc này bằng PowerShell, rất hữu ích cho việc tự động hóa.

Trong các môi trường được quản lý (ví dụ: với Intune), bạn có thể đóng gói một tập lệnh để sửa lỗi hình ảnh hoặc trình chiếu từ một thư mục (ví dụ: C:\\temp\\slideshowtest). Đây là một kịch bản phổ biến và khả thi để tự động hóa thông qua phân phối ứng dụng.

Tô màu tin nhắn nhanh với Write-Host

Để xuất kết quả nhanh chóng, Write-Host cho phép bạn thêm màu vào nền và chữ ngay lập tức. Nó lý tưởng để làm nổi bật các cảnh báo hoặc lỗi trong kịch bản mà không cần sử dụng PSReadLine.

Write-Host "Operación completada" -ForegroundColor Green
Write-Host "Atención" -ForegroundColor Yellow -BackgroundColor DarkBlue
Write-Host "Error" -ForegroundColor Red -BackgroundColor Black

Danh sách các màu được hỗ trợ rất đa dạng (ví dụ: Đen, Xanh đậm, Xanh lá đậm, Xanh lam đậm, Đỏ đậm, Tím đậm, Vàng đậm, Xám, Xám đậm, Xanh dương, Xanh lá, Xanh lam, Đỏ, Tím, Vàng, Trắng ) và cho phép bạn đạt được sự nhất quán về mặt hình ảnh tối thiểu mà không cần thêm bất kỳ phụ thuộc nào khác.

Mẹo thực tế cho một bảng màu hữu ích

Đừng chỉ hướng đến việc "nó trông đẹp". Hãy ưu tiên khả năng đọc. Tránh kết hợp các màu sắc bão hòa trên cả hai bề mặt và kiểm tra độ tương phản bằng một công cụ đáng tin cậy. Mục tiêu là để bạn có thể thoải mái sử dụng bàn phím trong nhiều giờ liền.

Ngoài ra, hãy kiểm tra màu sắc vùng chọn và tính năng tô sáng dự đoán/IntelliSense. Một vùng chọn có độ tương phản tốt và ListPredictionSelected không "lấn át" văn bản sẽ tạo ra sự khác biệt lớn về năng suất.

Màu sắc theo dự án hay theo máy? Hồ sơ sẽ giải quyết vấn đề.

Nếu bạn thường xuyên chuyển đổi giữa các máy tính hoặc hồ sơ người dùng, việc tập trung hóa các cài đặt là rất hữu ích. Hãy lưu các cài đặt $ISETheme và $PSStyle vào hồ sơ của bạn và quản lý phiên bản của tệp (ví dụ: bằng Git) để giữ cho chúng được đồng bộ.

Trên các máy tính dùng chung hoặc nhiều người dùng, hãy cân nhắc tách hồ sơ người dùng thành hồ sơ dành cho tất cả người dùng và hồ sơ người dùng riêng. Điều này giúp tách biệt dữ liệu công khai và dữ liệu cá nhân của hệ thống và tránh những sự cố bất ngờ khi chuyển đổi phiên làm việc.

  Sửa chữa: Mac được liên kết với WiFi nhưng không có web

Chẩn đoán nhanh: Tại sao ánh sáng lại có vẻ xấu?

Hãy nhớ rằng bảng màu mặc định cho PSReadLine và $PSStyle được thiết kế cho nền tối. Trong các chủ đề sáng, nhiều màu nền sáng sẽ không được chú ý. Ngoài ra, hãy kiểm tra Comment, String, Keyword, Member và Variable, vì chúng thường xung đột trong các chủ đề sáng.

Nếu vấn đề nằm ở màu sắc đầu ra của các cmdlet gốc (ví dụ: tiêu đề bảng), hãy kiểm tra $PSStyle.Formatting.* và các màu được định nghĩa cho thư mục, liên kết tượng trưng, ​​tệp thực thi và phần mở rộng trong $PSStyle.FileInfo.

Cấu hình Windows Terminal với nhiều shell
Bài viết liên quan:
Thiết lập Windows Terminal với nhiều Shell: Hướng dẫn đầy đủ