Tập lệnh powershell để chạy tập lệnh python

Trong một nỗ lực gần đây để tự động hóa một tập hợp các tác vụ liên quan, tôi nhận thấy một số trong số chúng có thể được thực hiện nhanh chóng trong powershell và một số trong python. Đây là một điều phổ biến khi bạn là "Jack of all trades and master of nothing". Tôi đang sử dụng ngôn ngữ nào không quan trọng. Tất cả những gì quan trọng là tôi cần quay lại nhanh chóng và thực hiện phân tích sâu hơn từ đầu ra của tập lệnh python được kích hoạt từ tập lệnh powershell

Đây là kịch bản

  1. Tập lệnh Powershell sẽ thực hiện một số thao tác, tạo tệp văn bản
  2. Tệp văn bản này cần được chọn bởi tập lệnh python, thực hiện một số xử lý nhanh và tạo đầu ra

Vấn đề ban đầu tôi gặp phải là tệp văn bản đầu ra được tạo bởi tập lệnh powershell không thể đọc được bằng tập lệnh python. Vì vậy, tôi đã phải thay đổi mã hóa thành "ascii" để vượt qua điều này

Lỗi python bị ném khi chọn tệp văn bản

line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start 
byte


Đây là những gì tôi phải làm trong tập lệnh powershell để sửa lỗi này - Lưu ý -Encoding ascii

$outputData | convertto-json | Out-File -Encoding ascii $outputFileName

Bây giờ đến mấu chốt của bài viết. Kích hoạt tập lệnh python từ powershell

$pythonLocation = "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\python.exe"
$pythonScript = "C:\Users\Administrator\Documents\myPythonScript.py"
$currentDate = Get-Date -Format "yyyymmdd_hhmmss" 
$outputFileName = "C:\output\json\OutputFile_$currentDate.json"

..      Powershell Code
...
...
...

$outputDict | convertto-json | Out-File -Encoding ascii $outputFileName


& $pythonLocation $pythonScript -f $outputFileName -v $inputParams

Vì vậy, dòng cuối cùng trong mã kích hoạt tập lệnh python với đầu vào. Bạn có thể kích hoạt bất kỳ tệp thực thi nào khác cũng sử dụng logic tương tự, nhưng vâng, bây giờ bạn đã biết cách thực hiện

Tạo tập lệnh tự động để bạn có thể chạy trên nhiều máy tính mà không cần tương tác của người dùng.

Ghi chú. Để chạy tập lệnh tự động, bạn phải cài đặt phiên bản chính mới nhất của khung có liên quan trên máy tính mục tiêu .

Quan trọng. Để sử dụng tính năng này, người dùng phải được xác thực bằng xác thực không tin cậy, phục vụ cho tính bảo mật của phiên.

Xác thực chỉ được yêu cầu một lần khi bạn chạy bước Thực thi từ xa

    1. Trên trang Thực hiện từ xa, chọn Tạo công việc mới

      Kết quả. Trang Tạo công việc được hiển thị

    2. Chọn nền tảng mà bạn muốn chạy các bước tự động hóa
    3. Thêm một trong các bước sau vào danh sách bên trái
      • Thực thi PowerShell
      • thực thi JavaScript
      • Thực thi Python
      • Thực thi tập lệnh Shell (chỉ khả dụng trên máy Mac)
    4. Dán tập lệnh của bạn vào trường. Bạn cũng có thể chọn tệp để tải lên mà máy tính từ xa có thể tải xuống.

      Ghi chú. Bạn có thể tham khảo (các) tệp từ tập lệnh. Bạn có thể tải lên tối đa ba tệp cho mỗi công việc với kích thước tối đa là 1GB cho mỗi tệp. Bất kỳ tập tin có thể được sử dụng.

    5. Bấm tiếp
    6. Từ danh sách Máy tính, xác định máy tính hoặc một nhóm máy tính that will receive the script.

      Bạn có thể sắp xếp các thiết bị của mình bằng cách chọn một tùy chọn nhóm từ đầu danh sách

      Tập lệnh powershell để chạy tập lệnh python

    7. Bấm tiếp
    8. Đặt tên công việc theo cách dễ nhớ sau này
    9. Nhấp vào Chạy

      Ghi chú. Thời gian chờ đặt trước liên quan đến cả công việc và bước .

      Thời gian chờ cho mỗi bước được đặt thành hai giờ, nghĩa là GoTo Resolve waits two hours for the script to finish on the remote computer. When the script finishes, GoTo Resolve bắt đầu bước tiếp theo và đợi thêm hai giờ nữa để bước đó kết thúc. Nếu một bước không hoàn thành trên máy tính từ xa sau hai giờ, thì bước đó sẽ hết thời gian chờ và toàn bộ công việc không thành công.

Kết quả

Ghi chú

Khi bạn tham chiếu một tệp từ tập lệnh, bạn chỉ cần nhập tên của nó. Khi bước kết thúc, tệp sẽ bị xóa khỏi máy tính từ xa , .

Thí dụ

Bạn tải lên 'a. txt' cho công việc và bạn muốn sao chép nó vào một thư mục (còn được gọi là phân phối tệp). Kịch bản của bạn sẽ giống như thế này.

Copy-Item a.txt C:\Destination

PowerShell có thể chạy tập lệnh không?

Bắt đầu trong Windows PowerShell 3. 0, bạn có thể sử dụng tính năng "Chạy bằng PowerShell" để chạy tập lệnh từ File Explorer trong Windows 8 và Windows Server 2012 cũng như từ Windows Explorer trong các phiên bản Windows cũ hơn.

Làm cách nào để sử dụng Python trong Windows PowerShell?

Cài đặt Python trên Windows .
Bước 1. Tải xuống. Chuyển đến con trăn. org/tải xuống/cửa sổ. .
Bước 2. Mở trình cài đặt Python. .
Bước 3. Xác minh Python được cài đặt qua PowerShell. .
Bước 4. Cập nhật cài đặt PowerShell. .
Bước 5. Tạo thư mục Dev. .
Bước 6. Cập nhật Pip. .
Bước 7. Tạo môi trường ảo. .
Bước 8. Cài đặt bất kỳ Gói Python nào

Python có thể tương tác với PowerShell không?

Có thể chạy PowerShell từ bên trong python bằng quy trình con. run() và chỉ định powershell. đường dẫn exe . Tạo GUI bằng tkinter trong Python dễ dàng một cách đáng ngạc nhiên, nhưng các yếu tố phụ thuộc phải được quản lý.