Chữ Boolean trong PowerShell


151

Các chữ boolean trong PowerShell là gì?


23
Đây là một câu hỏi hay và nó đã nhận được sự ủng hộ từ tôi. Tôi luôn nêu lên những câu hỏi SO xuất hiện trong các tìm kiếm google của tôi và giúp tôi. 4 người đó nên thực sự suy nghĩ lại về thái độ của họ đối với các câu hỏi cấp độ dễ, như thế này.
ulidtko

Câu trả lời:


172

$true$false.

Đó là những hằng số, mặc dù. Không có ngôn ngữ cấp độ ngôn ngữ cho booleans.

Tùy thuộc vào nơi bạn cần chúng, bạn cũng có thể sử dụng bất cứ thứ gì ép buộc với giá trị boolean, nếu kiểu đó phải là boolean, ví dụ như trong các lệnh gọi phương thức yêu cầu boolean (và không có quá tải xung đột) hoặc các câu lệnh điều kiện. Hầu hết các đối tượng không null là đúng, ví dụ. null, chuỗi rỗng, mảng trống và số 0là sai.


18

[bool]1[bool]0cũng hoạt động.


3
Nói chính xác, bạn có thể sử dụng rất nhiều thứ có thể bị ép buộc để boolean trong bối cảnh nơi chuyển đổi đang diễn ra, ví dụ như trong một tuyên bố có điều kiện. Và trong những trường hợp đó, bạn không cần phải phân vai. if ($s.Length) { ... }là hoàn toàn tốt, ví dụ.
Joey

5

Để thêm thông tin vào các câu trả lời đã có : Chữ boolean $true$falsecũng hoạt động như khi được sử dụng làm tham số dòng lệnh cho tập lệnh PowerShell (PS). Đối với tập lệnh PS bên dưới được lưu trữ trong một tệp có tên installmyapp.ps1:

param (
    [bool]$cleanuprequired
)

echo "Batch file starting execution."

Bây giờ nếu tôi gọi tệp PS này từ dòng lệnh PS, đây là cách tôi có thể thực hiện:

installmyapp.ps1 -cleanuprequired $true

HOẶC LÀ

installmyapp.ps1 -cleanuprequired 1

Ở đây 1$truelà tương đương. Ngoài ra, 0$falselà tương đương.

Lưu ý : Không bao giờ mong đợi rằng chuỗi ký tự truecó thể được tự động chuyển đổi thành boolean. Ví dụ: nếu tôi chạy lệnh dưới đây:

installmyapp.ps1 -cleanuprequired true

nó không thực thi được đoạn script với lỗi dưới đây:

Không thể chuyển đổi đối số quy trình trên tham số 'dọn dẹp yêu cầu'. Không thể chuyển đổi giá trị "System.String" để gõ "System.Boolean". Các tham số Boolean chỉ chấp nhận các giá trị và số Boolean, chẳng hạn như $ True, $ false, 1 hoặc 0.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.