Python đọc đầu ra PowerShell
Không chắc hệ điều hành của bạn là gì, nhưng nếu là Windows thì bạn có thể cần thay đổi đường dẫn của mình để sử dụng dấu gạch chéo ngược thay vì bạn đã viết nó bằng dấu gạch chéo lên hoặc chỉ cần sử dụng Đường dẫn tham gia Ngoài ra, bạn có thể chạy trực tiếp một exe trong PowerShell bằng cách sử dụng toán tử cuộc gọi (&), do đó bạn không nhất thiết phải sử dụng Start-Process để chạy Python trừ khi bạn có lý do cụ thể để chạy. Cũng có thể sử dụng Invoke-Expression và chuyển đầu ra thành một tệp Tôi đang thực hiện một thử nghiệm và nghĩ rằng việc tận dụng Python sẽ rất thú vị. Là một phần của thử nghiệm đó, tôi sẽ cần thực thi PowerShell từ Python vì chỉ có các lệnh ghép ngắn PowerShell mới có thể thực hiện những gì tôi cần. Sau một tuần nghiên cứu một chút về việc để nó sôi, tôi đã có thể ngồi xuống và giải quyết nó vào đêm qua. Một phần là do tôi không quen với Python cho những gì tôi đang làm, và phần khác chỉ là tôi không nghĩ về vấn đề một cách tổng thể bạn cần gìBạn sẽ cần cài đặt PowerShell trên hệ thống của mình và Python 3. 6+. Điều này sẽ hoạt động trên nhiều nền tảng. Tôi đã thử nghiệm trên Kubfox 20. 10 đang chạy PowerShell dưới dạng gói chụp nhanh. Bạn sẽ không cần bất kỳ thư viện bên ngoài nào vì chúng tôi sử dụng một trong nhiều thư viện tuyệt vời có sẵn với Python Mật mãTất cả những gì chúng ta cần là tạo một cuộc gọi tệp ps. py, sau đó chúng ta có thể nhập mô-đun quy trình con
Bây giờ chúng ta có thể tạo phương thức chạy mà chúng ta sẽ sử dụng để thực thi lệnh PowerShell của mình
Hãy làm cho tệp Python của chúng ta có thể thực thi được và sau đó tạo các lệnh mà chúng ta muốn thực thi. Một lệnh có cú pháp đúng và một lệnh có cú pháp sai. Điều này sẽ trình bày cách sử dụng sự trở lại của quy trình con. phương pháp chạy
Đây là tập tin hoàn chỉnh
thực thi ps. py, và chúng ta có thể thấy đầu ra. Lệnh đầu tiên không thành công và trả về mã thoát bằng 0 và chúng tôi in ra rằng nó đã chạy thành công. Lệnh thứ hai có lỗi đánh máy và chúng tôi nhận được mã thoát của lệnh mà sau đó chúng tôi in lỗi xuất phát từ lỗi tiêu chuẩn
Phần kết luậnVậy là xong, bây giờ bạn có thể thoải mái xây dựng bất kỳ loại lệnh nào mà bạn muốn thực thi, kể cả các lệnh nhiều dòng và nó sẽ hoạt động |