TLDR; . Tôi sẽ chỉ ra cách sử dụng một số lệnh mà bạn có thể kết nối để thực hiện tất cả các công việc nặng nhọc cho bạn
Kịch bản - tạo báo cáo từ một số dữ liệu từ xa
Ok, bạn đây rồi, bạn đang muốn đọc dữ liệu từ một nơi và trình bày dữ liệu đó dưới dạng báo cáo web. Dữ liệu ở xa, bạn cần tìm nạp nó bằng cách nào đó, có lẽ bạn cũng cần suy nghĩ về cách chuyển đổi dữ liệu đến và cuối cùng là tạo báo cáo web đó. Nếu bạn là một nhà phát triển, bạn có thể nghĩ rằng oh ok, đây có lẽ là một vài phần chuyển động, 10-20 dòng mã. Nhưng bạn đã nghe nói về PowerShell, nó được cho là mạnh mẽ, thực hiện được nhiều công việc nặng nhọc, vậy tại sao bạn không thử dùng nó
Các bước chúng tôi sẽ thực hiện
Để đạt được nhiệm vụ của mình, chúng ta cần lên kế hoạch cho nó. Thực hiện tuần tự, và ai biết được, có thể đây là thứ chúng ta có thể tái sử dụng?
- Lấy dữ liệu. Cần lấy dữ liệu bằng cách nào đó
- Chuyển thành. Giả sử dữ liệu này có một số loại định dạng và rất có thể chúng ta cần chuyển đổi nó ở một số dạng khác
- Hiện nay. Vì vậy, chúng tôi đã tìm nạp dữ liệu, sắp xếp nó thành một định dạng phù hợp, bây giờ thì sao?
Được làm việc
Chúng tôi có một kế hoạch trò chơi. Bây giờ hãy xem liệu chúng ta có thể tìm thấy các lệnh chúng ta cần không. Một điểm khởi đầu tốt là Microsoft. PowerShell. phần tiện ích. Trong phần này, có rất nhiều lệnh thực hiện rất nhiều công việc nặng nhọc cho bạn
Lấy dữ liệu
Trước tiên, chúng ta cần lấy một số dữ liệu từ xa, vậy chúng ta có những lựa chọn nào?
- Gọi-WebRequest, điều này dường như cho phép chúng tôi gọi một URL, gửi nội dung, thông tin đăng nhập, v.v., có vẻ đầy hứa hẹn
- Gọi phương thức nghỉ ngơi. Còn cái này thì sao, nó khác nhau như thế nào?
PowerShell định dạng phản hồi dựa trên loại dữ liệu. Đối với nguồn cấp dữ liệu RSS hoặc ATOM, PowerShell trả về các nút Mục hoặc Mục nhập XML. Đối với Ký hiệu đối tượng JavaScript [JSON] hoặc XML, PowerShell chuyển đổi hoặc giải tuần tự hóa nội dung thành các đối tượng [PSCustomObject]
Nó nhận một phản hồi JSON và biến nó thành một PSCustomObject, thật tuyệt. Chà, hãy xem các lệnh khác của chúng tôi trước khi đưa ra quyết định
Trình bày dữ liệu
Đây là điều cuối cùng chúng ta cần làm nhưng chúng ta cần hiểu liệu có lệnh nào giúp chúng ta tạo báo cáo hay không và quan trọng nhất là đầu vào cần có. tôi nghĩ rằng chúng tôi đã tìm thấy nó
- ConvertTo-Html Chuyển đổi. NET thành HTML có thể được hiển thị trong trình duyệt Web
Phải, điều đó nhắc nhở chúng ta về điều gì đó,
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
3. Tại sao? . e. đối tượng NETTuy nhiên, làm cách nào để chúng tôi lưu báo cáo vào một tệp để chúng tôi có thể lưu trữ báo cáo đó ở đâu đó và để báo cáo được lưu trữ trên máy chủ web?
Tổng quan về giải pháp
Vì vậy, chúng tôi có một lý thuyết về cách làm điều này
- Gọi
3HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/ - Theo sau bởi
8HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/ - Theo sau bởi
5HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
Xây dựng giải pháp
Có vẻ như quá dễ dàng. Ah tốt, chúng ta hãy cho nó whirl. Trước tiên, hãy chọn một nguồn dữ liệu, SWAPI, API Chiến tranh giữa các vì sao, vì tôi sử dụng
Invoke-Item ./report.htm
0, phải không?. ]- Bắt đầu
1 trong bảng điều khiểnInvoke-Item ./report.htm
- Tạo một tập tin web-báo cáo. ps1
- Thêm đoạn mã sau
Invoke-RestMethod -URI //swapi.dev/api/people/1/ |
ConvertTo-Html |
Out-File report.htm
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
- Chạy
2 [hoặcInvoke-Item ./report.htm
3 cho người dùng Windows]Invoke-Item ./report.htm
Nó tạo ra một báo cáo. htm cho chúng tôi. Ok, chúng ta hãy có một cái nhìn
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
- Hiển thị tệp này trong trình duyệt có
4Invoke-Item ./report.htm
Invoke-Item ./report.htm
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Điều này sẽ khởi động một trình duyệt và bạn sẽ thấy một cái gì đó giống như
Ok, bạn có thể hoàn thành ở đây hoặc chúng tôi có thể làm cho nó linh hoạt hơn. Chúng tôi không thích các giá trị được mã hóa cứng, phải không?
Làm cho nó linh hoạt
Tôi nghĩ vậy, bây giờ, hãy thêm một số tham số cho, URL và tên báo cáo
- Thêm mã sau vào phần trên cùng của báo cáo web tập lệnh của chúng tôi. ps1
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
- Hãy gọi nó một lần nữa, lần này với một URL mới "https. //hoán đổi. nhà phát triển/api/người/2/"
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
6Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
- Hãy kiểm tra phản hồi trong báo cáo. htm.
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
7Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Lần này chúng ta có ________ 75, vâng, chắc chắn là không Thích, có vẻ như nó đang hoạt động. ]
Cải thiện phản hồi
Vì vậy, cho đến nay chúng tôi đã có rất nhiều cột quay trở lại, có thể chúng tôi chỉ cần một vài trường từ phản hồi, chẳng hạn như
Invoke-Item ./report.htm
6, Invoke-Item ./report.htm
7 và Invoke-Item ./report.htm
8. Vâng, hãy làm điều đó và chỉ cần chọn những gì chúng ta cần từ phản hồi- Hãy thêm
9 như vậyInvoke-Item ./report.htm
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
3Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
với mã đầy đủ trông như vậy
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
- Hãy gọi nó một lần nữa
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
và báo cáo của chúng tôi bây giờ trông giống như
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
6Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Tốt hơn nhiều. ] Trên thực tế, đọc lên một chút, chúng ta chỉ có thể sử dụng -Property trên
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
8, vì vậy chúng ta nhận được
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
0Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Làm cho nó đẹp
Thành thật mà nói, báo cáo này là xấu, không có màu sắc, không có gì. Chắc chắn là chúng ta có thể chuyển một tệp CSS tới
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
8?À vâng, xem qua các tài liệu có tham số
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
52 có đường dẫn tệp. Hãy tạo một tệp CSS sau đó- Tạo
53 và thêm CSS sauHTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
1Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
- Cập nhật tập lệnh để lấy
54 trênHTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
8HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/ - Chạy lại, bạn sẽ thấy điều này trong trình duyệt
Tóm lược
Tóm lại, chúng tôi đã học được rằng chúng tôi có thể sử dụng chỉ một vài lệnh,
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
3,
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
8 và
HTML TABLE
nameheightmasshair_colorskin_coloreye_colorbirth_yeargenderhomeworldfilmsspeciesvehiclesstarshipscreatededitedurl
Luke Skywalker 172 77 blond fair blue 19BBY male //swapi.dev/api/planets/1/ System.Object[] System.Object[] System.Object[] System.Object[] 09/12/2014 13:50:51 20/12/2014 21:17:56 //swapi.dev/api/people/1/
5 và bùng nổ, chúng tôi đã tạo cho mình một báo cáo