Các biến số, đầu vào và đầu ra của trường học Geek
Khi chúng ta tránh xa các lệnh đang chạy đơn giản và chuyển sang viết các tập lệnh đầy đủ, 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 chắc chắn đọc các bài viết trước trong loạt bài:
- Tìm hiểu cách tự động hóa Windows với 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 định dạng, lọc và so sánh trong PowerShell
- Tìm hiểu cách sử dụng từ xa trong PowerShell
- Sử dụng PowerShell để lấy thông tin máy tính
- Làm việc với Bộ sưu tập trong PowerShell
Và theo dõi phần còn lại của loạt bài cả 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, đơn giản là các thùng chứa các giá trị. Trong PowerShell, chúng tôi cũng có các biến và chúng thực sự dễ sử dụng. Đây là cách tạo một biến có tên là First FirstName và cung cấp cho nó giá trị.
$ FirstName = Viết 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 vỏ mà chúng ta muốn truy cập vào nội dung của biến (nghĩ những gì bên trong container) chứ không phải chính container. 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à First FirstName.
Trong PowerShell, bạn có thể thấy tất cả các biến bạn đã tạo trong biến PSDrive.
biến gci:
Điều đó có nghĩa là bạn cũng có thể xóa một biến khỏi trình bao:
Biến loại bỏ mục: \ FirstName
Các biến không phải chứa một đối tượng; 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ữ danh sách các quy trình đang chạy trong một biến, bạn chỉ có thể gán cho nó đầu ra của Quy trình Nhận.
$ Proc = Nhận-Quá trình
Mẹo để hiểu điều này là hãy nhớ rằng phía bên phải của dấu bằng luôn được đánh giá đầu 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 = Nhận-Quá trình | Sắp xếp CPU-Giảm dần | chọn -Đầu tiên 3
Biến CPUHogs sẽ chứa ba tiến trình đang chạy bằng cách sử dụng nhiều CPU nhất.
Khi bạn có một biến giữ một bộ sưu tập các đối tượng, có một số điều cần chú ý. Ví dụ, gọi một phương thức trên biến sẽ khiến nó được gọi trên mỗi đối tượng trong bộ sưu tập.
$ CPUHogs.Kill ()
Mà sẽ giế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 coi nó như một mảng.
$ CPUHogs [0]
Làm điều đó sẽ cung cấp cho bạn đối tượng đầu tiên trong bộ sưu tập.
Đừng để bị bắt!
Các biến trong PowerShell được gõ yếu 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 được những người mới đến PowerShell mọi lúc!
$ a = 10
$ b = '20'
Vì vậy, chúng ta có hai biến, một biến chứa một chuỗi và biến còn lại là một số nguyên. Vì vậy, những gì 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ũng cố gắng chuyển đổi bất kỳ toán hạng nào khác thành số nguyên. Tuy nhiên, trong ví dụ thứ hai toán hạng thứ nhất 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. Các kịch bản nâng cao hơn ngăn chặn loại hình xác thực này bằng cách chuyển biến thành loại mà họ đang mong đợi.
[int] $ Số = 5
[int] $ Số = '5'
Cả hai điều trên sẽ dẫn đến biến Số chứa một đối tượng số nguyên có giá trị là 5.
Đầu vào và đầu ra
Vì PowerShell có nghĩa là tự động hóa mọi thứ, bạn sẽ muốn tránh nhắc nhở người dùng về 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 được và đối với những lần đó, chúng tôi có lệnh ghép ngắn Đọc-Lưu trữ. Sử dụng nó rất đơn giản:
$ FirstName = Read-Host -Prompt 'Nhập tên của bạn'
Bất cứ điều gì bạn nhập sau đó sẽ được lưu trong biến.
Viết đầu ra dễ dàng như vậy với lệnh ghép ngắn Đầu ra.
Viết-Xuất ra Làm thế nào để đá Geek!
Tham gia với chúng tôi vào ngày mai, nơi chúng ta gắn kết mọi thứ chúng ta đã học cùng nhau!