Geek School: Học các biến PowerShell, đầu vào và đầu ra

Mục lục:

Geek School: Học các biến PowerShell, đầu vào và đầu ra
Geek School: Học các biến PowerShell, đầu vào và đầu ra

Video: Geek School: Học các biến PowerShell, đầu vào và đầu ra

Video: Geek School: Học các biến PowerShell, đầu vào và đầu ra
Video: Internet Explorer - "Ông Hoàng" Một Thời Của Thế Giới Trình Duyệt - YouTube 2024, Tháng tư
Anonim
Khi chúng tôi di chuyển ra khỏi chỉ đơn giản là chạy lệnh và di chuyển vào viết kịch bản đầy đủ thổi, bạn sẽ cần một nơi tạm thời để lưu trữ dữ liệu. Đây là nơi các biến đến.
Khi chúng tôi di chuyển ra khỏi chỉ đơn giản là chạy lệnh và di chuyển vào viết kịch bản đầy đủ thổi, bạn sẽ cần một nơi tạm thời để lưu trữ dữ liệu. Đây là nơi các biến đến.

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
  • Học cách định dạng, lọc và so sánh trong PowerShell
  • Tìm hiểu cách sử dụng Remoting trong PowerShell
  • Sử dụng PowerShell để lấy thông tin máy tính
  • Làm việc với các bộ sưu tập trong PowerShell

Và hãy theo dõi phần còn lại của loạt phim trong tuần.

Biến

Hầu hết các ngôn ngữ lập trình cho phép sử dụng các biến, mà chỉ đơn giản là các thùng chứa giữ giá trị. Trong PowerShell, chúng ta cũng có các biến và chúng rất dễ sử dụng. Đây là cách tạo một biến gọi là "FirstName" và cung cấp cho nó giá trị "Taylor".

$FirstName = “Taylor”

Điều đầu tiên mà hầu hết mọi người dường như hỏi là tại sao chúng ta đặt một ký hiệu đô la trước tên biến, và đó thực sự là một câu hỏi rất hay. Thực sự, ký hiệu đô la chỉ là một gợi ý nhỏ cho trình bao mà chúng tôi muốn truy cập nội dung của biến (nghĩ nội dung bên trong vùng chứa) chứ không phải chính vùng chứa đó. Trong PowerShell, tên biến không bao gồm ký hiệu đô la, có nghĩa là trong ví dụ trên, tên biến thực sự là "FirstName".

Trong PowerShell, bạn có thể xem tất cả các biến mà bạn đã tạo trong biến PSDrive.

gci variable:

Điều đó có nghĩa là bạn cũng có thể xóa một biến từ trình bao bất kỳ lúc nào:
Điều đó có nghĩa là bạn cũng có thể xóa một biến từ trình bao bất kỳ lúc nào:

Remove-Item Variable:FirstName

Các biến không phải chứa một đối tượng đơn lẻ; bạn có thể dễ dàng lưu trữ nhiều đối tượng trong một biến. Ví dụ, nếu bạn muốn lưu trữ một danh sách các tiến trình đang chạy trong một biến, bạn có thể chỉ định nó cho đầu ra của quá trình Get-Process.

$Proc = Get-Process

Bí quyết để hiểu điều này là hãy nhớ rằng phía bên tay phải của dấu bằng luôn được đánh giá trước tiên. Điều này có nghĩa là bạn có thể có toàn bộ đường ống ở phía bên tay phải nếu bạn muốn.

$CPUHogs = Get-Process | Sort CPU -Descending | select -First 3

Biến CPUHogs giờ đây sẽ chứa ba tiến trình đang chạy sử dụng CPU nhiều nhất.

Khi bạn có một biến chứa một tập hợp các đối tượng, có một số điều cần lưu ý. Ví dụ, gọi một phương thức trên biến sẽ làm cho nó được gọi trên mỗi đối tượng trong bộ sưu tập.
Khi bạn có một biến chứa một tập hợp các đối tượng, có một số điều cần lưu ý. Ví dụ, gọi một phương thức trên biến sẽ làm cho nó được gọi trên mỗi đối tượng trong bộ sưu tập.

$CPUHogs.Kill()

Mà sẽ giết tất cả ba quá trình trong bộ sưu tập. Nếu bạn muốn truy cập một đối tượng trong biến, bạn cần xử lý nó như một mảng.

$CPUHogs[0]

Làm như vậy sẽ cung cấp cho bạn đối tượng đầu tiên trong bộ sưu tập.

Image
Image

Đừng bị bắt!

Các biến trong PowerShell được gõ nhẹ theo mặc định có nghĩa là chúng có thể chứa bất kỳ loại dữ liệu nào, điều này dường như bắt gặp những người mới vào PowerShell mọi lúc!

$a = 10

$b = ‘20’

Vì vậy, chúng tôi có hai biến, một biến chứa một chuỗi và một số nguyên khác. Vậy điều gì sẽ xảy ra nếu bạn thêm chúng? Nó thực sự phụ thuộc vào thứ tự bạn thêm chúng vào.

$a + $b = 30

Trong khi

$b + $a = 2010

Trong ví dụ đầu tiên, toán hạng đầu tiên là một số nguyên, $ a, vì vậy PowerShell nghĩ rằng bạn đang cố gắng làm toán và do đó cố chuyển đổi mọi toán hạng khác thành số nguyên. Tuy nhiên, trong ví dụ thứ hai toán hạng đầu tiên là một chuỗi, vì vậy PowerShell chỉ chuyển đổi phần còn lại của toán hạng thành chuỗi và nối chúng lại. Những người viết kịch bản nâng cao hơn ngăn chặn kiểu này bằng cách truyền biến đến kiểu mà họ đang mong đợi.

[int]$Number = 5 [int]$Number = ‘5’

Cả hai bên trên sẽ dẫn đến biến số chứa một đối tượng số nguyên với giá trị là 5.

Đầu vào và đầu ra

Vì PowerShell có ý định tự động hóa mọi thứ, bạn sẽ muốn tránh nhắc người dùng cung cấp thông tin bất cứ khi nào có thể. Như đã nói, sẽ có những lúc bạn không thể tránh nó, và trong những lần đó chúng ta có lệnh Read-Host. Sử dụng nó rất đơn giản:

$FirstName = Read-Host –Prompt ‘Enter your first name’

Bất cứ điều gì bạn nhập sẽ được lưu trong biến.
Bất cứ điều gì bạn nhập sẽ được lưu trong biến.
Viết đầu ra cũng dễ dàng với lệnh ghép ngắn Write-Output.
Viết đầu ra cũng dễ dàng với lệnh ghép ngắn Write-Output.

Write-Output “How-To Geek Rocks!”

Đề xuất: