Hãy nhớ đọc các bài viết trước trong loạt bài này:
- Tìm hiểu cách tự động hóa Windows bằng PowerShell
- Học cách sử dụng Cmdlets trong PowerShell
- Học cách sử dụng các đối tượng trong PowerShell
Và hãy theo dõi phần còn lại của loạt phim trong tuần.
Định dạng mặc định
Khi tôi lần đầu tiên bắt đầu với PowerShell, tôi nghĩ mọi thứ đều là ma thuật, nhưng sự thật là nó chỉ mất một chút thời gian để hiểu những gì đang xảy ra bên dưới mui xe. Điều này cũng đúng cho hệ thống định dạng PowerShell. Trong thực tế, nếu bạn chạy lệnh ghép ngắn Get-Service, đầu ra được tạo ra chỉ hiển thị cho bạn 3 thuộc tính: Trạng thái, Tên và Tên hiển thị.
notepad C:WindowsSystem32WindowsPowerShellv1.0DotNetTypes.format.ps1xml
Nếu chúng ta sử dụng notepad‚Äôs Find function, chúng ta có thể nhanh chóng chuyển đến phần chi tiết đầu ra của lệnh Get-Service bằng cách tìm kiếm kiểu ServiceController.
Định dạng dữ liệu của bạn
Nếu bạn không hài lòng với định dạng mặc định của một đối tượng hoặc loại, bạn có thể cuộn định dạng của riêng bạn. Có ba lệnh nhỏ bạn cần phải biết để làm điều này.
- Định dạng-Danh sách
- Định dạng-Bảng
- Định dạng rộng
Định dạng rộng chỉ cần lấy một bộ sưu tập các đối tượng và hiển thị một thuộc tính duy nhất của mỗi đối tượng. Theo mặc định, nó sẽ tìm kiếm một thuộc tính tên; nếu đối tượng của bạn không chứa thuộc tính tên, nó sẽ sử dụng thuộc tính đầu tiên của đối tượng khi thuộc tính đã được sắp xếp theo thứ tự bảng chữ cái.
Get-Service | Format-Wide
Get-Service | Format-Wide -Property DisplayName -Column 6
Chế độ xem dạng bảng này thực sự phù hợp với loại thông tin này rất tốt, nhưng chúng ta giả sử chúng ta muốn xem nó dưới dạng danh sách. Tất cả những gì chúng ta thực sự phải làm là đặt nó vào Định dạng-Danh sách.
Get-Process | Format-List
Get-Process | Format-List –Property *
Get-Process | Format-List –Property name,id
Định dạng-Bảng, mặt khác, lấy dữ liệu và biến nó thành một bảng. Vì dữ liệu của chúng tôi từ Get-Process đã ở dạng một bảng, chúng tôi có thể sử dụng nó để dễ dàng chọn các thuộc tính mà chúng tôi muốn hiển thị trong bảng. Tôi đã sử dụng tham số AutoSize để làm cho tất cả dữ liệu vừa với một màn hình duy nhất.
Get-Process | Format-Table name,id –AutoSize
Lọc và so sánh
Một trong những điều tốt nhất về việc sử dụng một đường ống dựa trên đối tượng là bạn có thể lọc các đối tượng ra khỏi đường ống ở bất kỳ giai đoạn nào bằng cách sử dụng lệnh ghép ngắn Where-Object.
Get-Service | Where-Object {$_.Status -eq “Running”}
- eq (Bằng với)
- neq (Không bằng)
- gt (Lớn hơn)
- ge (Lớn hơn hoặc Bằng Đến)
- lt (Ít hơn)
- le (Ít hơn hoặc Bằng Đến)
- thích (So khớp chuỗi ký tự đại diện)
Một danh sách đầy đủ và nhiều thông tin hơn có thể được xem trong tệp trợ giúp khái niệm about_comparison, tuy nhiên phải mất một thời gian để sử dụng cú pháp Where-Obeject. Đó là tất cả cho thời gian này!