PowerShell chuyển đổi tệp văn bản thành bảng HTML

Bạn cần tách chuỗi theo các khoảng chiều rộng cố định. Sử dụng đoạn trích tệp văn bản của bạn, để bắt chước Get-Content

cls
$content = @'
**program-id        sta pid        start time           stop time**

Clnt_dp           T   0          04/03/2017 08:00:03  04/03/2017 08:00:04
Clnt_ds           R   5140       04/03/2017 08:00:03  
Clnt_rpc          R   8572       04/03/2017 08:00:03  
bksrvr            R   4692       04/03/2017 07:59:03  
chkw              T   0          04/03/2017 07:59:03  04/03/2017 08:09:04
db                T   0          04/03/2017 07:59:01  04/03/2017 07:59:02
dsaux             R   8444       04/03/2017 07:59:03  
dssched           R   4792       04/03/2017 07:59:03  
dsshares          R   7672       04/03/2017 07:59:03  
ixmonSvc          R   5552       04/03/2017 07:59:03  
jbd               R   7536       04/03/2017 07:59:02  
migration         R   476        04/03/2017 07:59:03  
notifSrvr         R   1220       04/03/2017 07:59:03  
timestamp         R   8928       04/03/2017 07:59:02 
'@
$content -split "`r*`n" |
  select -Skip 2 -Property  @{name='program-id';expression={$_.Substring(0 ,17).Trim()}}, #1st
                            @{name='sta';       expression={$_.Substring(18,4).Trim()}},  #2nd 
                            @{name='pid';       expression={$_.Substring(22,11).Trim()}}, #3rd
                            @{name='start time';expression={$_.Substring(33,19).Trim()}}, #4th
                            @{name='stop time'; expression={$_.Substring(54).Trim()}} |   #5th
  ConvertTo-Html

và sử dụng Get-Content

Get-Content -Path 'c:\path\to\file.txt' |
  select -Skip 2 -Property  @{name='program-id';expression={$_.Substring(0 ,17).Trim()}}, #1st
                            @{name='sta';       expression={$_.Substring(18,4).Trim()}},  #2nd 
                            @{name='pid';       expression={$_.Substring(22,11).Trim()}}, #3rd
                            @{name='start time';expression={$_.Substring(33,19).Trim()}}, #4th
                            @{name='stop time'; expression={$_.Substring(54).Trim()}} |   #5th
  ConvertTo-Html

Vài năm trước, tôi đã xuất bản một chức năng PowerShell để chuyển đổi tệp văn bản thành danh sách HTML. Tôi nghĩ sẽ rất hữu ích nếu chuyển đổi tập lệnh thành tài liệu HTML bằng cách đánh số dòng và một số định dạng. Hóa ra ai đó thực sự đã sử dụng nó. Anh ấy có một số câu hỏi về chức năng khiến tôi phải xem lại nó và nhận ra rằng có một số cải tiến cần thực hiện

Quản lý và báo cáo Active Directory, Exchange và Microsoft 365 với
ManageEngine ADManager Plus - Tải xuống bản dùng thử miễn phí

Ưu đãi độc quyền trên ADManager Plus cho Hoa Kỳ và Vương quốc Anh . Yêu cầu ngay bây giờ.

Một phần của thách thức với dự án này là chức năng lấy một tệp văn bản hiện có và tạo một tệp văn bản lớn hơn nhiều. Một mặt, điều này được mong đợi vì chúng tôi đang thêm HTML vào nó. Nhưng tôi muốn tìm cách giảm kích thước

Sau khi chỉnh sửa một số kiểu HTML, tôi đã tìm ra một cách tốt hơn để giữ nguyên định dạng mà không làm tăng đáng kể kích thước tệp. Tôi cũng đã thêm một tùy chọn để bạn có thể chỉ định tệp CSS thay thế. Nếu bạn không sử dụng, thì hàm sẽ chèn một kiểu mặc định vào phần đầu. Tôi cũng cung cấp cho bạn tùy chọn để chỉ định tiêu đề tài liệu của riêng bạn

Tập lệnh sửa đổi, bao gồm xác định bí danh, hiện là ý chính trên GitHub

Hàm này hoạt động giống như ConvertTo-HTML ở chỗ nó không tạo ra một tệp thực tế. Bạn vẫn cần chuyển đầu ra sang Out-File. Và bạn nên sử dụng Out-File thay vì ký tự chuyển hướng bảng điều khiển (>) vì điều đó đã tạo ra một phiên bản tệp lớn hơn nhiều

Đây là một ví dụ về tệp được chuyển đổi bằng cách sử dụng biểu định kiểu mặc định

PowerShell chuyển đổi tệp văn bản thành bảng HTML

Nếu bạn muốn tạo biểu định kiểu của riêng mình, hãy đảm bảo sử dụng cài đặt khoảng trắng. trước; . Ít nhất là tốt nhất nó có thể

PowerShell là một công cụ mạnh mẽ giúp bạn đơn giản hóa và tự động hóa các tác vụ tẻ nhạt và lặp đi lặp lại. Quản trị viên thường sử dụng PowerShell để trích xuất thông tin từ hệ thống hoặc cơ sở dữ liệu khi tập dữ liệu được yêu cầu phải được trình bày dưới dạng báo cáo. Tuy nhiên, các báo cáo ở dạng văn bản hoặc tệp CSV thường thiếu kiểu dáng đẹp mắt và nổi bật của HTML. Trong hướng dẫn này, bạn sẽ tìm hiểu cách tạo Báo cáo HTML nn bằng PowerShell,

Không phải là một độc giả?

Không nhìn thấy video?

PowerShell có thể giúp bạn tạo báo cáo HTML và tránh xa các định dạng nhạt nhẽo khác này. Chỉ sử dụng PowerShell, bạn có thể làm cho báo cáo trở nên sống động với HTML cho phép bạn tạo bản trình bày có ý nghĩa về dữ liệu thô được trích xuất từ ​​hệ thống. Bạn thậm chí có thể áp dụng Cascading Style Sheets (CSS) để dễ dàng tùy chỉnh bố cục báo cáo của mình

Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng lệnh ghép ngắn

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
6 kết hợp với lệnh ghép ngắn
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
7 để tạo báo cáo HTML. Bạn cũng sẽ học tập lệnh cơ bản cho CSS và cách nó có thể hữu ích trong việc định dạng thiết kế báo cáo dựa trên HTML của bạn

Mục lục

  • điều kiện tiên quyết
  • Tạo Báo cáo thông tin máy tính cơ bản bằng ConvertTo-Html
    • Xuất báo cáo thành tệp HTML
    • Kết hợp các báo cáo bằng cách sử dụng tham số phân đoạn
    • Thêm nhãn bằng thông số PreContent và PostContent
    • Thay đổi bố cục bảng bằng cách sử dụng làm tham số
    • Nâng cao Báo cáo bằng CSS
    • Sử dụng HTML Id và thuộc tính lớp trong CSS
  • Sự kết luận
  • Đọc thêm

điều kiện tiên quyết

Bài viết này sẽ là một hướng dẫn. Nếu bạn có ý định làm theo, hãy đảm bảo rằng bạn đã thiết lập trước các điều kiện tiên quyết sau

  • Tất cả các ví dụ sẽ được hiển thị bằng Windows 10 Build 1709, nhưng phiên bản này không bắt buộc
  • Windows PowerShell 5. 1 hoặc phiên bản mới hơn của PowerShell Core 7
  • Trình duyệt như Internet Explorer hoặc Google Chrome

Tạo Báo cáo thông tin máy tính cơ bản bằng cách sử dụng Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html8

Để trình bày cách sử dụng lệnh ghép ngắn

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
8 và các tham số của nó, bạn sẽ tạo một tập lệnh lấy thông tin cơ bản của máy (chẳng hạn như Hệ điều hành, Bộ xử lý, BIOS và dung lượng đĩa khả dụng) và tạo thông tin thành báo cáo HTML

Bạn bắt đầu với một lệnh thu thập thông tin về phiên bản hệ điều hành từ một máy. Mở bảng điều khiển PowerShell của bạn, sau đó sao chép và dán lệnh bên dưới rồi nhấn enter để chạy lệnh

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer

Khi chạy lệnh trên, lệnh ghép ngắn

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
0 sẽ thu thập các thuộc tính của lớp
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
1 chứa thông tin về hệ điều hành của máy, lệnh sẽ trả về nhiều kết quả, do đó cần lọc để chỉ lấy các thông tin liên quan. Kết quả sẽ trông giống như ảnh chụp màn hình hiển thị bên dưới

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Thông tin hệ điều hành của máy

Bây giờ bạn đã có lệnh trả về thông tin hệ điều hành, hãy chuyển đổi kết quả thành mã HTML. Để chuyển đổi kết quả (đối tượng) từ lệnh trên trong mã HTML, bạn có thể chuyển đầu ra của lệnh ghép ngắn

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
0 thành
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
8. Chạy lệnh bên dưới trong bảng điều khiển PowerShell của bạn

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html

Bạn có thể thấy trong ảnh chụp màn hình bên dưới rằng PowerShell tự động tạo các thẻ HTML từ đầu ra của lệnh ghép ngắn

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
0. Kết quả được hiển thị ở định dạng bảng, trong đó tiêu đề bảng hiển thị các tên thuộc tính như Phiên bản, Chú thích, Số bản dựng và Nhà sản xuất. Mỗi hàng của bảng đại diện cho một đối tượng và hiển thị các giá trị của đối tượng cho từng thuộc tính

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Mã HTML được tạo

Xuất báo cáo thành tệp HTML

Bây giờ bạn đã có kết quả và chuyển đổi sang mã HTML, hãy xuất báo cáo sang tệp HTML bằng cách sử dụng lệnh ghép ngắn

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
5 và xem báo cáo trong trình duyệt web. Đưa đầu ra của lệnh ghép ngắn
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
8 và chỉ định đường dẫn mà bạn muốn lưu báo cáo bằng cách sử dụng tham số
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
7 và sử dụng Basic-Computer-Information-Report. html làm tên của tệp

Mở PowerShell ISE của bạn hoặc bất kỳ trình soạn thảo văn bản nào, sao chép mã bên dưới và lưu tập lệnh với tên tệp Generate-HTML-Report. Ps1

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html

Chạy Tạo-HTML-Báo cáo. Tập lệnh Ps1 trong Bảng điều khiển PowerShell của bạn

Get-Content -Path 'c:\path\to\file.txt' |
  select -Skip 2 -Property  @{name='program-id';expression={$_.Substring(0 ,17).Trim()}}, #1st
                            @{name='sta';       expression={$_.Substring(18,4).Trim()}},  #2nd 
                            @{name='pid';       expression={$_.Substring(22,11).Trim()}}, #3rd
                            @{name='start time';expression={$_.Substring(33,19).Trim()}}, #4th
                            @{name='stop time'; expression={$_.Substring(54).Trim()}} |   #5th
  ConvertTo-Html
7

Sau khi chạy tập lệnh, hãy mở Basic-Computer-Information-Report. tệp html trong trình duyệt web. Trình duyệt web diễn giải mã của báo cáo HTML và hiển thị dữ liệu trên màn hình trình duyệt. Báo cáo phải chứa thông tin về hệ điều hành của máy tương tự như ảnh chụp màn hình bên dưới

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Báo cáo HTML được xem trong trình duyệt web

Kết hợp Báo cáo Sử dụng Thông số Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html8

Lúc này, bạn đã có một đoạn script lấy thông tin về hệ điều hành của máy và xuất kết quả sang báo cáo HTML. Mục tiêu của bạn là thêm nhiều lệnh hơn trong tập lệnh để lấy thông tin còn lại của máy tính như Bộ xử lý, BIOS, Đĩa và Dịch vụ

Mỗi lệnh sẽ trả về thông tin máy tính khác nhau được định dạng là mã HTML. Để hợp nhất đúng thông tin trong một báo cáo HTML, hãy sử dụng tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
8 để chỉ lấy phần bảng của mã HTML được tạo bởi lệnh ghép ngắn
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
8

Như bạn có thể thấy trong ảnh chụp màn hình bên dưới, PowerShell tạo tất cả các thành phần HTML cơ bản khi đầu ra được dẫn đến lệnh ghép ngắn

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
8

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Danh sách mã HTML được tạo bằng lệnh ghép ngắn
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
8

Khi bạn sử dụng tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
8, PowerShell chỉ tạo phần tử bảng HTML. Các phần tử ________ 174, ________ 175, ________ 176, ________ 177 và các phần tử khác được bỏ qua. Kết quả sẽ được hiển thị dưới đây

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Danh sách mã HTML cho bảng sử dụng tham số Fragment

Bây giờ bạn đã biết cách tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
8 hoạt động từ ví dụ trên, hãy áp dụng điều đó trong tập lệnh

Các lệnh trong tập lệnh bên dưới thực hiện như sau

  • Năm dòng lệnh đầu tiên lấy thông tin khác nhau từ máy như Hệ điều hành, Bộ xử lý, BIOS, Đĩa và Dịch vụ
  • Lọc kết quả bằng tham số
    Get-Content -Path 'c:\path\to\file.txt' |
      select -Skip 2 -Property  @{name='program-id';expression={$_.Substring(0 ,17).Trim()}}, #1st
                                @{name='sta';       expression={$_.Substring(18,4).Trim()}},  #2nd 
                                @{name='pid';       expression={$_.Substring(22,11).Trim()}}, #3rd
                                @{name='start time';expression={$_.Substring(33,19).Trim()}}, #4th
                                @{name='stop time'; expression={$_.Substring(54).Trim()}} |   #5th
      ConvertTo-Html
    
    79 để chỉ hiển thị các giá trị có liên quan
  • Lưu trữ các giá trị trong các biến tương ứng. Mỗi thông tin được định dạng dưới dạng bảng bằng cách sử dụng
    Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
    00
  • Hợp nhất các bảng HTML bằng cách sử dụng tham số
    Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
    01 thành một báo cáo HTML
  • Đặt tiêu đề của báo cáo thành “Báo cáo thông tin máy tính” sử dụng tham số
    Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
    02
  • Xuất báo cáo dưới dạng tệp HTML bằng tham số
    Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
    5

Thông tin bổ sung về tập lệnh có sẵn trong các nhận xét trong đoạn mã bên dưới. Cập nhật tập lệnh với đoạn mã sau

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
0

Chạy tập lệnh trong bảng điều khiển PowerShell. Bạn có thể thấy đầu ra của báo cáo như hình dưới đây

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Báo cáo HTML với thông tin máy tính cơ bản

Thêm Nhãn Sử dụng Tham số Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html04 và Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html05

Tại thời điểm này, tập lệnh hiện có thể lấy tất cả thông tin cơ bản của máy tính và xuất kết quả sang HTML. Tuy nhiên, như bạn có thể thấy trong ảnh chụp màn hình ở trên, ai đó hoặc người nhận báo cáo có thể gặp khó khăn trong việc hiểu nội dung khi bạn xóa chú thích vì thông tin không được gắn nhãn hoặc phân loại đúng cách

Bằng cách sử dụng tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
04 và
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
05, bạn có thể thêm nhãn vào mỗi bảng để bất kỳ ai cũng có thể dễ dàng phân biệt nội dung của báo cáo

Tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
04 chỉ định văn bản cần thêm trước thẻ mở
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
09 và tham số
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
05 chỉ định văn bản sẽ thêm sau thẻ đóng
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
21. Các giá trị được thêm vào trên các tham số này không được tự động chuyển đổi thành mã Html, vì vậy bạn cần sử dụng các thẻ HTML một cách rõ ràng để nó được hiển thị đúng dưới dạng các phần tử HTML

Cập nhật tập lệnh bằng các lệnh bên dưới, sau đó chạy tập lệnh trong bảng điều khiển PowerShell

Dưới đây là những thay đổi trong tập lệnh

  • Lệnh mới được thêm vào để lấy tên của máy tính. Giá trị của biến ________ 422 có thẻ _______ 423 để thay đổi định dạng văn bản thành tiêu đề khi hiển thị trên trình duyệt
  • Các nhãn khác nhau được thêm vào trong mỗi bảng bằng cách sử dụng
    Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
    04 Tham số và các giá trị được đặt trong các thẻ
    Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
    25
  • Nhãn ngày tạo được thêm vào cuối báo cáo bằng cách sử dụng thông số
    Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
    05 và giá trị được đặt trong thẻ
    Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
    27

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
2

Bạn có thể thấy với một chút công việc bổ sung, báo cáo có thể trông đẹp hơn rất nhiều, báo cáo sẽ được cập nhật như hình bên dưới

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Báo cáo HTML được thêm nhãn bằng Tham số PreContent và PostContent

Thay đổi bố cục bảng bằng tham số Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html28

Có thể, bảng HTML được tạo có nhiều cột và bạn muốn thay đổi định dạng để hiển thị đúng giá trị dưới dạng danh sách, bạn có thể sử dụng tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
28. Theo mặc định, khi bạn chuyển đầu ra thành
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
20, PowerShell sẽ tạo một bảng HTML giống với định dạng bảng Windows PowerShell

Như bạn có thể thấy trong ảnh chụp màn hình bên dưới, tiêu đề bảng hiển thị các tên thuộc tính như Phiên bản, Chú thích, Số bản dựng và Nhà sản xuất và mỗi hàng của bảng đại diện cho một đối tượng và hiển thị các giá trị của đối tượng cho từng thuộc tính

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Mã HTML được tạo bởi lệnh ghép ngắn ConvertTo-Html được định dạng dưới dạng Bảng

Để thay đổi bố cục của bảng thành danh sách, hãy sử dụng tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
21, sau đó là Danh sách. PowerShell tạo bảng HTML hai cột cho từng đối tượng giống với định dạng danh sách Windows PowerShell. Cột đầu tiên hiển thị tên thuộc tính như Phiên bản, Chú thích, Số bản dựng và Nhà sản xuất và cột thứ hai hiển thị giá trị thuộc tính

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Mã HTML được tạo bởi lệnh ghép ngắn ConvertTo-Html được định dạng dưới dạng Danh sách

Từ các ví dụ trên, bây giờ bạn đã có ý tưởng về cách thay đổi bố cục của bảng, hãy áp dụng tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
28 trong tập lệnh của chúng ta để thay đổi bố cục của bảng thông tin Hệ điều hành, Bộ xử lý, BIOS và Đĩa sang định dạng danh sách

Cập nhật tập lệnh với đoạn mã sau bên dưới. Tập lệnh có tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
21 trong các dòng lệnh cho Hệ điều hành, Bộ xử lý, BIOS và Đĩa

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
2

Sau khi áp dụng tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
21, báo cáo sẽ được cập nhật như hình bên dưới. Bố cục bảng cho thông tin Hệ điều hành, Bộ xử lý, BIOS và Đĩa hiện được thay đổi thành danh sách

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Báo cáo HTML với các bảng được định dạng là Danh sách

Nâng cao Báo cáo bằng CSS

Hãy đưa báo cáo lên cấp độ tiếp theo và bắt đầu thêm thiết kế bằng CSS. CSS được sử dụng để kiểm soát cách báo cáo HTML sẽ trông như thế nào trong trình duyệt web. CSS kiểm soát phông chữ, văn bản, màu sắc, hình nền, lề và bố cục. Ở cuối phần này, bạn sẽ có thể xem cách báo cáo sẽ chuyển đổi từ định dạng đơn giản sang định dạng phong phú bằng cách sử dụng CSS

Có ba cách để áp dụng CSS trong HTML như Inline, Internal và External. Đối với bài viết này, bạn sẽ áp dụng phương thức Internal sử dụng tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
25 trong báo cáo HTML

Tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
25 chỉ định nội dung của thẻ
Get-Content -Path 'c:\path\to\file.txt' |
  select -Skip 2 -Property  @{name='program-id';expression={$_.Substring(0 ,17).Trim()}}, #1st
                            @{name='sta';       expression={$_.Substring(18,4).Trim()}},  #2nd 
                            @{name='pid';       expression={$_.Substring(22,11).Trim()}}, #3rd
                            @{name='start time';expression={$_.Substring(33,19).Trim()}}, #4th
                            @{name='stop time'; expression={$_.Substring(54).Trim()}} |   #5th
  ConvertTo-Html
75. Thẻ
Get-Content -Path 'c:\path\to\file.txt' |
  select -Skip 2 -Property  @{name='program-id';expression={$_.Substring(0 ,17).Trim()}}, #1st
                            @{name='sta';       expression={$_.Substring(18,4).Trim()}},  #2nd 
                            @{name='pid';       expression={$_.Substring(22,11).Trim()}}, #3rd
                            @{name='start time';expression={$_.Substring(33,19).Trim()}}, #4th
                            @{name='stop time'; expression={$_.Substring(54).Trim()}} |   #5th
  ConvertTo-Html
75 là một phần của cấu trúc HTML nơi bạn đặt mã cho CSS. Như bạn có thể thấy trong ảnh chụp màn hình bên dưới, thẻ
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
29 đã được bao gồm khi mã HTML được tạo bởi lệnh ghép ngắn
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
8

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Mã HTML hiển thị phần tử Head

Bây giờ hãy sử dụng CSS để định dạng báo cáo HTML. Đầu tiên, sao chép mã bên dưới và dán vào đầu tập lệnh. Mã CSS được gán trong biến

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
41 sẽ thay đổi định dạng của văn bản trong báo cáo được đặt trong thẻ
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
23

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
4

Tiếp theo, sử dụng tham số

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
25 và gán biến
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
41. Cập nhật tập lệnh bằng mã bên dưới

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
9

Khi bạn chạy tập lệnh, báo cáo sẽ được cập nhật như hình bên dưới. Lưu ý rằng phần tử HTML bị ảnh hưởng duy nhất là

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
23 được áp dụng cho nhãn “Tên máy tính”. Các bước trên là một ví dụ tuyệt vời về cách bạn có thể kiểm soát hoặc điều khiển thiết kế của báo cáo HTML bằng CSS

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Báo cáo HTML với CSS sử dụng Tham số Head

Để bổ sung thêm thiết kế cho các bảng và nhãn khác được đặt trong thẻ

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
25 trong báo cáo, hãy tiếp tục cập nhật biến
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
41 bằng mã CSS bên dưới

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
3

Sau khi cập nhật và chạy tập lệnh, báo cáo sẽ được định dạng như hình bên dưới – Nhờ có CSS, báo cáo giờ đây trông bắt mắt và trông chuyên nghiệp

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Báo cáo HTML được định dạng bằng CSS

Sử dụng HTML Id và thuộc tính lớp trong CSS

Các phần tử HTML là các khối xây dựng của toàn bộ báo cáo HTML của bạn, CSS sử dụng các phần tử này làm công cụ chọn để biết nên áp dụng kiểu ở đâu. Từ các ví dụ trước, mã CSS đã được áp dụng cho các phần tử HTML

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
48,
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
49 và
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
90 trong báo cáo. Nhưng nếu bạn cần áp dụng phong cách khác nhau trên các yếu tố khác nhau thì sao? . Khi thiết kế báo cáo HTML của mình, bạn có thể sử dụng id hoặc lớp để xác định một phần tử

Xin lưu ý rằng một phần tử HTML chỉ có thể có một id duy nhất thuộc về phần tử đó, trong khi tên lớp có thể được sử dụng bởi nhiều phần tử. Đối với các nhà phát triển web, các thuộc tính này không chỉ để thiết kế trang mà chủ yếu được sử dụng trong tập lệnh để xử lý cách trang sẽ phản hồi mọi sự kiện hoặc yêu cầu

Hãy áp dụng các thuộc tính id và class trong báo cáo HTML. Như bạn có thể thấy trong đoạn mã bên dưới, nhãn ngày tạo được đặt trong thẻ

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
27

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
0

Khi báo cáo được tạo và xem trong trình duyệt, nhãn ngày tạo được định dạng như hình bên dưới

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Báo cáo HTML hiển thị nhãn ngày tạo

Để định dạng nhãn ngày tạo bằng thuộc tính id – Đầu tiên, gán tên id ‘CreationDate‘ cho thẻ

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
27. Tên id nên được đặt bên trong thẻ bắt đầu. Mã cập nhật được hiển thị bên dưới

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
1

Thứ hai, tạo mã CSS mới để định dạng nhãn ngày tạo. Sử dụng ký hiệu

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
93 theo sau là tên ID khi khai báo ID trong CSS. Thêm mã CSS bên dưới vào biến
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
41, sau đó lưu và chạy tập lệnh trong bảng điều khiển PowerShell

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
2

Sau khi chỉ định id và tạo mã CSS mới nhắm mục tiêu thuộc tính id của thẻ

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
27, báo cáo sẽ được cập nhật như hình bên dưới

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Báo cáo HTML hiển thị nhãn ngày tạo được định dạng bằng CSS qua ID làm bộ chọn

Hãy áp dụng thuộc tính lớp trong bảng thông tin Dịch vụ. Sử dụng CSS thay đổi màu của văn bản thành màu xanh lá cây ** khi giá trị của trạng thái Đang chạy và sử dụng màu đỏ khi giá trị là Đã dừng

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Báo cáo HTML hiển thị bảng Thông tin dịch vụ

Như đã đề cập trước đó, các thuộc tính lớp có thể được gán cho nhiều phần tử HTML. Trong báo cáo HTML, phần tử chứa văn bản Đang chạy và Đã dừng là thẻ

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
96. Sử dụng phương thức
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
97 của PowerShell, gán tên lớp RunningStatus và StopStatus cho tất cả các thẻ
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
96 trong bảng thông tin Dịch vụ. Sử dụng các lệnh bên dưới và cập nhật tập lệnh

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
3

Add the following CSS code below in the

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer
41 variable. All
tags with a class name of RunningStatus will have the hexadecimal value of
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
30  which is equivalent to color green,  and All
tags with a class name of StopStatus will have the hexadecimal value of
Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html
31  which is equivalent to color red.

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
4

Lưu và chạy tập lệnh. Bảng thông tin Dịch vụ trong báo cáo cần được cập nhật như hình bên dưới

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Báo cáo HTML hiển thị bảng Thông tin dịch vụ được định dạng bằng CSS thông qua bộ chọn lớp

Dưới đây là bố cục cuối cùng của báo cáo HTML được định dạng bằng CSS

PowerShell chuyển đổi tệp văn bản thành bảng HTML
Bố cục cuối cùng của báo cáo HTML

Dưới đây là các lệnh hoàn chỉnh cho Tạo-HTML-Báo cáo. Ps1

Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer |  ConvertTo-Html
5

Sự kết luận

Trong bài viết này, bạn đã học cách chuyển đổi các đối tượng (kết quả) thành mã HTML và tạo chúng thành báo cáo HTML

Tạo báo cáo sang định dạng HTML cung cấp cho bạn khả năng áp dụng CSS giúp báo cáo dễ dàng cải thiện và thao tác hơn. Có rất nhiều tài nguyên trực tuyến miễn phí mà bạn có thể sử dụng để nâng cao kỹ năng thiết kế CSS và viết mã HTML của mình.

Tôi hy vọng bài viết này cung cấp cho bạn đủ ý tưởng về cách bạn có thể tạo và cải thiện báo cáo HTML của mình. Chúc mừng

Đọc thêm

  • Chuyển đổi sang Html
  • Thu thập thông tin về máy tính
  • HTML và CSS

Ghét quảng cáo?

Khám phá sách hướng dẫn ATA

Thông tin khác từ ATA Learning & Partners

  • PowerShell chuyển đổi tệp văn bản thành bảng HTML

    Tài nguyên được đề xuất

    Tài nguyên được đề xuất cho đào tạo, bảo mật thông tin, tự động hóa, v.v.

  • PowerShell chuyển đổi tệp văn bản thành bảng HTML

    Được trả tiền để viết

    ATA Learning luôn tìm kiếm những người hướng dẫn ở mọi cấp độ kinh nghiệm. Bất kể bạn là quản trị viên cấp dưới hay kiến ​​trúc sư hệ thống, bạn đều có điều gì đó để chia sẻ. Tại sao không viết trên một nền tảng có khán giả hiện có và chia sẻ kiến ​​thức của bạn với mọi người?

  • PowerShell chuyển đổi tệp văn bản thành bảng HTML

    Sách hướng dẫn học tập ATA

    ATA Learning được biết đến với các hướng dẫn bằng văn bản chất lượng cao dưới dạng các bài đăng trên blog. Hỗ trợ Học tập ATA với sách điện tử PDF Sách hướng dẫn ATA khả dụng ngoại tuyến và không có quảng cáo