Tôi đang chạy tập lệnh PowerShell từ bên trong một tệp lô. Tập lệnh tìm nạp một trang web và kiểm tra xem nội dung của trang có phải là chuỗi "OK" hay không.Cách tạo một cái gì đó trong PowerShell
Kịch bản PowerShell trả về mức lỗi cho tập lệnh theo lô.
Tập lệnh lô được thực hiện bởi ScriptFTP, một chương trình tự động hóa FTP. Nếu một lỗi xảy ra, tôi có thể có ScriptFTP gửi đầu ra bàn điều khiển đầy đủ cho người quản trị thông qua E-Mail.
Trong kịch bản PowerShell, tôi muốn xuất giá trị trả về từ trang web nếu nó không phải là "OK", do đó thông báo lỗi được đưa vào đầu ra của bàn điều khiển và do đó trong thư trạng thái.
Tôi mới sử dụng PowerShell và không chắc chắn chức năng đầu ra nào sẽ sử dụng cho việc này. Tôi có thể thấy ba:
- Write-Host
- Write-Output
- Write-Lỗi
Điều gì sẽ là điều đúng đắn để sử dụng để viết thư cho tương đương với Windows của stdout
?
Điều đó không thực sự xảy ra. Đó là một biểu thức dạng chuỗi và là thứ duy nhất trong đường ống của nó. Do đó nó tương đương với "Xin chào, Thế giới!" | Out-Host'. Mặt khác, 'Out-Host' gửi các đối tượng tới máy chủ PowerShell để hiển thị và việc thực thi nó phụ thuộc vào máy chủ. Các máy chủ bàn điều khiển gửi chúng đến xử lý đầu ra tiêu chuẩn (đi qua 'Out-Default' trên đường đi), thực sự. PowerShell ISE hiển thị chúng trong ngăn đầu ra của nó, tuy nhiên, và các máy chủ khác có thể làm những thứ khác hoàn toàn. – Joey
Các đối tượng cũng không bị chuyển đổi một cách mù quáng thành chuỗi, nhưng chuyển qua một _formatter_ để quyết định phải làm gì với chúng. Đó là lý do tại sao bạn thấy đầu ra của 'Get-ChildItem' đến trong một dạng bảng, ví dụ, và kết quả với nhiều thuộc tính (ví dụ như WMI) mặc định là' Định dạng-Danh sách' thay thế. – Joey