Hướng dẫn convert python to powershell online - chuyển đổi python sang powershell trực tuyến

PowerShell là một công cụ tự động hóa và khung cấu hình đa nền tảng [Windows, Linux và MacOS] được tối ưu hóa để xử lý dữ liệu có cấu trúc [ví dụ: JSON, CSV, XML, v.v.], API REST và các mô hình đối tượng. PowerShell bao gồm một shell dòng lệnh, ngôn ngữ kịch bản hướng đối tượng và một tập hợp các công cụ để thực thi các tập lệnh/cmdlet và quản lý các mô-đun.

ps1scriptify

Kịch bản Python tạo ra một chức năng PowerShell được bao bọc xung quanh một tập lệnh Python có thể thực thi. Dễ dàng như bánh để hiểu.

Lưu ý từ năm 2022: Mã này đã cũ và lỗi, tôi không chắc tại sao tôi đã tạo nó ngay từ đầu, tôi chắc chắn có những cách khác, tốt hơn để gọi các tập lệnh Python từ Terminal. Nhưng này, kịch bản này vẫn hoạt động trong một số trường hợp.

Nếu tập lệnh Python của bạn có một khối chính và sử dụng trình diễn viên thì bạn có thể PS1Scriptify nó! Điều này được thực hiện bằng cách phân tích cú pháp tệp .py của bạn bằng regex và kết quả là tệp .ps1 chứa một hàm sẽ lấy các đối số giống như tập lệnh của bạn. Hàm PowerShell này gọi tệp .py của bạn, vì vậy bạn có thể sử dụng nó trực tiếp từ thiết bị đầu cuối.ps1scriptify it! This is done by snakingly parsing your .py file using regex and the result is a .ps1 file containing a function that should take the same arguments as your script. This Powershell function calls your .py file, so you can use it straight from terminal.

Hiện tại và cho tương lai có thể thấy trước chỉ hoạt động trên Windows và với Python3, và chỉ trên Argparse.

Sử dụng:

function combinliste {
    Param[$seq, $k]
    $p = @[]
    $i; $imax = 0, [Math]::Pow[2, $seq.Count] - 1
    while [$i -le $jmax] {
        $s = @[]
        $j, $jmax = 0, $seq.Count - 1
        while [$j -le $jmax] {
            if [$i -shr $j -band 1 -eq 1] {
                $s + [$seq ???? #I don't know how to do it here
            }
            $j #humm.. 1
        }
        if [$s.Count -eq $k] {
            $p + $s
        }
        $i #humm.. 1
        return $p
    }
}
3

Tùy chọn bao gồm tham số -f để tạo tập lệnh này ghi đè lên các tệp .ps1 hiện có.

Ví dụ:

function combinliste {
    Param[$seq, $k]
    $p = @[]
    $i; $imax = 0, [Math]::Pow[2, $seq.Count] - 1
    while [$i -le $jmax] {
        $s = @[]
        $j, $jmax = 0, $seq.Count - 1
        while [$j -le $jmax] {
            if [$i -shr $j -band 1 -eq 1] {
                $s + [$seq ???? #I don't know how to do it here
            }
            $j #humm.. 1
        }
        if [$s.Count -eq $k] {
            $p + $s
        }
        $i #humm.. 1
        return $p
    }
}
4

Sẽ tạo một tệp có tên foo.ps1, ghi đè lên nó nếu nó đã tồn tại.

Hoặc, bạn có thể chỉ định thư mục đích bằng cách sử dụng tham số -dest.

Ví dụ:

function combinliste {
    Param[$seq, $k]
    $p = @[]
    $i; $imax = 0, [Math]::Pow[2, $seq.Count] - 1
    while [$i -le $jmax] {
        $s = @[]
        $j, $jmax = 0, $seq.Count - 1
        while [$j -le $jmax] {
            if [$i -shr $j -band 1 -eq 1] {
                $s + [$seq ???? #I don't know how to do it here
            }
            $j #humm.. 1
        }
        if [$s.Count -eq $k] {
            $p + $s
        }
        $i #humm.. 1
        return $p
    }
}
5

Sẽ tạo một tệp có tên foo.ps1 trong thư mục C: \ Bar.

Sự thật thú vị: Bạn có thể kiểm tra tập lệnh này bằng cách tự chạy nó!

Tôi đang cố gắng chuyển đổi một kịch bản Python thành PowerShell nhưng tôi không có bất kỳ trải nghiệm Python nào và nó đang trở nên dài cho một đoạn mã nhỏ.

def combinliste[seq, k]:
    p = []
    i, imax = 0, 2**len[seq]-1
    while ij]&1==1:
                s.append[seq[j]]
            j += 1
        if len[s]==k:
            p.append[s]
        i += 1
    return p

Tôi đã làm một cái gì đó nhưng tôi thực sự không biết nó có đúng không.

function combinliste {
    Param[$seq, $k]
    $p = @[]
    $i; $imax = 0, [Math]::Pow[2, $seq.Count] - 1
    while [$i -le $jmax] {
        $s = @[]
        $j, $jmax = 0, $seq.Count - 1
        while [$j -le $jmax] {
            if [$i -shr $j -band 1 -eq 1] {
                $s + [$seq ???? #I don't know how to do it here
            }
            $j #humm.. 1
        }
        if [$s.Count -eq $k] {
            $p + $s
        }
        $i #humm.. 1
        return $p
    }
}
6 trong PowerShell là gì, nó có giống như Python không?

function combinliste {
    Param[$seq, $k]
    $p = @[]
    $i; $imax = 0, [Math]::Pow[2, $seq.Count] - 1
    while [$i -le $jmax] {
        $s = @[]
        $j, $jmax = 0, $seq.Count - 1
        while [$j -le $jmax] {
            if [$i -shr $j -band 1 -eq 1] {
                $s + [$seq ???? #I don't know how to do it here
            }
            $j #humm.. 1
        }
        if [$s.Count -eq $k] {
            $p + $s
        }
        $i #humm.. 1
        return $p
    }
}

Tôi đã thử một vài biến thể, nhưng tôi bị mất.

TestComplete hỗ trợ một số ngôn ngữ kịch bản. Trong một số trường hợp, bạn có thể cần chuyển đổi mã tập lệnh từ ngôn ngữ này sang ngôn ngữ khác. Thông thường, đây không phải là mẫu mã từ tài liệu TestComplete, vì nó bao gồm các ví dụ trong tất cả các ngôn ngữ được hỗ trợ. Thông thường, điều này xảy ra khi bạn tìm thấy một số mã của bên thứ ba thực hiện những gì bạn cần, nhưng được viết bằng ngôn ngữ kịch bản khác với mã mà dự án thử nghiệm của bạn sử dụng.

Các công cụ lập trình và thử nghiệm hiện đại [bao gồm cả TestComplete] don lồng chuyển đổi tập lệnh tự động, bạn phải thực hiện điều này theo cách thủ công.

Các ngôn ngữ kịch bản khác nhau có cấu trúc mã tương tự, nhưng khai báo và thực hiện chúng trong cách cư xử hơi khác nhau. Dưới đây là tương đương của các cấu trúc mã được sử dụng trong các ngôn ngữ kịch bản mà TestComplete hỗ trợ. Sử dụng danh sách này như một gợi ý để chuyển đổi tập lệnh nhanh hơn.

Tip: C#Script, C ++ Script và JScript [không phải JavaScript], sử dụng cùng một công cụ tập lệnh, do đó không cần phải chuyển đổi mã tập lệnh từ một trong các ngôn ngữ này sang ngôn ngữ khác. Bạn có thể sử dụng mã JScript mà không có thay đổi trong các dự án tập lệnh C#và C ++ và ngược lại.

Tổng quan ngắn gọn

Bảng dưới đây liệt kê các câu lệnh kịch bản mẫu thể hiện sự khác biệt cú pháp giữa các ngôn ngữ kịch bản.

Độ nhạy trường hợp

Nhạy cảm

Nhạy cảm

Quy trình khai báo

hàm myProcedure [] {& nbsp; & nbsp; MyProcedure[]
{
  …
}

def myProcedure []: & nbsp; & nbsp; ... MyProcedure[]:
  ...

Tuyên bố chức năng

hàm myFunction [] {& nbsp; & nbsp; } MyFunction[]
{
  …
  return 0;
}

def myfunction []: & nbsp; & nbsp; ... & nbsp; & nbsp; return 0 MyFunction[]:
  ...
  return 0

Sự định nghĩa biến

Đặt x, y; var x, y; x, y;
var x, y;

Tuyên bố liên tục

const c = 45; c = 45;

x = 0 y = 0
y = 0

Giá trị boolean

đúng sai

Đúng sai

Chuỗi chữ

"String"'String'
'String'

"String"'String'"""String"""
'String'
"""String"""

Kết hợp chuỗi

"Abra" + "Cadabra"

"Abra" + "Cadabra"

Bình luận

/ * Nhận xét đa dòng * /// Nhận xét đơn lẻ
comment */
// Single-line comment

# Nhận xét một dòng

Phân công

x = 10;

x = 10

Phân công đối tượng

x = myObject;

x = myObject

Nhận tài sản đối tượng

x = obj.MyProperty; x = obj. $ get ["myProperty"];
x = obj.$get["MyProperty"];

x = obj.MyProperty

Gọi phương thức đối tượng

x.mymethod [param1, param2]; x. $ call ["mymethod", param1, param2];
x.$call["MyMethod", Param1, Param2];

x.mymethod [param1, param2]

Các phép tính toán học

Phép cộng

x + 5

x + 5

Phép trừ

y - 9

y - 9

Phép nhân

x * y

x * y

Phân công

x / 2

x / 2

Mô đun số học

x % 2

x % 2

Phân chia số nguyên

x // 3

Tăng

i ++ i = i+1
i = i+1

i += 1i = i +1
i = i+1

Giảm dần

I- -I = I-1
i = i-1

i -= 1i = I -1
i = i-1

Số mũ

Math.pow[x,3]

x ** 3

Toán tử so sánh

Sự bình đẳng

x == 10

x == 10

Bất bình đẳng

x! = 0

x! = 0

Ít hơn

x 0

Ít hơn hoặc bằng

x

x

Lớn hơn hoặc bằng

x> = 10

x> = 10

Kiểm tra tương đương đối tượng

Obj1 == obj2 bằng [obj1, obj2]
equal[Obj1, Obj2]

Obj1 == obj2

Toán tử logic

Phủ định logic

!! x

không phải x x

Kết hợp logic

X && y

x và yand y

Sự phân tách logic

x || y

x hoặc yor y

Loại trừ hợp lý

x ^ y

Các nhà khai thác bitwise

Tiêu cực bitwise

~ x

~ x

BitWise kết hợp

X & Y.

X & Y.

BitWise Disjonion

x | y

x | y

Loại trừ bitwise

x ^ y

x ^ y

Các nhà khai thác bitwise

Tiêu cực bitwise

Tiêu cực bitwise

~ x

BitWise kết hợp

BitWise kết hợp

X & Y.

BitWise Disjonion

x | y [x == 10]
  Test1[];
else
  Test2[];

Loại trừ bitwise x == 10:
  Test1[]
else:
  Test2[]

Bitwise trái thay đổi

x > y

Điều kiện

Nếu tuyên bố [let i = 0; i < 10; i++]
  Test1[];

if [x == 10] & nbsp; & nbsp; test1 []; other & nbsp; & nbsp; test2 []; i in range [0, 9]:
  Test1[]

Nếu x == 10: & nbsp; & nbsp; test1 [] other: & nbsp; & nbsp; test2 []

SWITCH/SELECT SALLENT [i < 10]
  Test1[];

chuyển đổi [somechar] {& nbsp; & nbsp; trường hợp "a": testona []; break; & nbsp; & nbsp; trường hợp "z": testtonz []; break; & nbsp; & nbsp; mặc định: testonelse []; } i < 10:
  Test1[]

Nếu somechar == 'a': & nbsp; & nbsp; testona [] elif somechar == 'z': & nbsp; & nbsp; testtonz [] khác: & nbsp; & nbsp; testtonelse []

Vòng lặp Test1[]; while [i < 10]

Cho vòng lặp True:
  Test1[]
  if i == 9:
    break

for [let i = 0; i

Bài Viết Liên Quan

Chủ Đề