Css powershell

PowerShell là một trình bao tương tác và ngôn ngữ kịch bản từ Microsoft làm thay đổi suy nghĩ về một dòng lệnh trình bao. Nó có các tính năng rất thú vị hơn và vượt trội so với các shell Unix quen thuộc, và có một hệ thống sinh thái mạnh mẽ và cộng đồng đông đảo

Trong hai phần hướng dẫn này, bạn sẽ tìm hiểu về một số điều tuyệt vời mà bạn có thể làm với PowerShell, lịch sử và kiến ​​trúc của nó, khái niệm của nó và so sánh nó với shell Unix chẳng hạn như Bash. Hãy sẵn sàng cho một cuộc hành trình thú vị

Cài đặt PowerShell

Nếu bạn đang ở trên Windows 10, thì bạn đã có sẵn nó. Nếu không, tải nó từ trang web của Microsoft

Khi PowerShell được cài đặt, điều đầu tiên bạn muốn làm là cho phép thực thi tập lệnh này. Khởi động PowerShell với quyền quản trị và nhập.

$x = "@
123
456
789
@"
0. Bạn chỉ cần làm điều đó một lần. Bây giờ, cập nhật các tập tin trợ giúp.
$x = "@
123
456
789
@"
1

Những điều thú vị mà bạn có thể làm với PowerShell

Please started with a minh họa về độ rộng của PowerShell. Đây chỉ là một danh sách tùy chọn để bạn cảm thấy hứng thú. Nó không toàn diện, cũng không thiết yếu nhất phải là những điều ấn tượng nhất mà bạn có thể làm với PowerShell

Chơi Video

Dưới đây là một dòng lệnh được sử dụng để phát các tập tin video (hoặc bất kỳ tập tin đa phương tiện nào)

$x = "@
123
456
789
@"
2

Nó sẽ mở một cửa sổ trình phát media và khởi động ngay phần đầu phát video của bạn

đây dây

PowerShell có một trong những giải pháp hay và trực tiếp nhất để chạy nhiều dòng lệnh, hay còn gọi là "chuỗi đây". Bạn chỉ cần bắt đầu với

23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
0 và kết thúc với
23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
1. Lưu ý rằng các dấu hiệu bắt đầu và kết thúc phải ở trên dòng riêng của chúng, phân biệt với nội dung ở giữa. Dưới đây là một ví dụ

$x = "@
123
456
789
@"

Create random number

Select a Random number from 1 to 100

23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
2

Đây là một dòng liên hợp (đường ống) đơn giản. Ở phía bên trái có thể tạo ra tất cả các số nguyên từ 1 đến 50 (bao gồm cả 1 và 50), và sau đó nó được đưa ra lệnh rút gọn Get-Random để chọn ra một số trong chúng

Làm việc với Clipboard (Bộ nhớ tạm thời)

PowerShell support + clipboard. Bạn có thể lấy và thiết lập các đối tượng có định dạng khác nhau. Rõ ràng, văn bản rõ ràng là hoàn toàn có thể, nhưng bạn cũng có thể làm việc với hình ảnh, HTML, RTF và thậm chí là tất cả các tập tin

Tại đây, tôi chọn một số tệp trong trình khám phá và sau đó tôi lấy chúng từ khay nhớ tạm trong PowerShell

23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg

Nói chuyện

PowerShell cũng có thể nói chuyện

Add-Type -AssemblyName System.speech
$synth = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer
$synth.Speak("PowerShell to the people")

Liệt kê tất cả các máy ảo đang chạy

Dưới đây là một lệnh liên kết để liệt kê tất cả các máy ảo đang chạy

23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
3

Show thanh process

PowerShell có thể hiển thị một tiến trình thanh khá đẹp cho những tác vụ thực thi lâu dài. Dưới đây là một ví dụ về tính toán đệ quy tổng kích thước của tất cả các tệp ở bên dưới thư mục hiện tại

$files = Get-ChildItem . -Recurse
$total = 0
For ($i = 1; $i -le $files.Count-1; $i++)
{ 
    Write-Progress -Activity "Calculating total size..." -status $files[$i].Name -PercentComplete ($i / $files.Count * 100)
    $total += $files[$i].Length
    Start-Sleep -Milliseconds 50
}
 
Write-Host "Total size: $($total / 1MB)"

Lịch sử của PowerShell

PowerShell 1. 0 được phát hành vào năm 2006, nhưng người tạo ra nó Jeffery Snover đã bắt đầu làm việc với nó sớm hơn nhiều. Mời xem bản tuyên bố vào năm 2002. PowerShell đã đi một đường dài. Windows has not update command line. Người quản trị hệ thống và người dùng cao cấp phải thực hiện công việc với những người hỗ trợ cô nàng của cmd. exe and batch file. Đã có một vài nỗ lực giảm nhẹ để cải thiện các vấn đề với việc thực thi tập lệnh trong Windows cho phép các đối tượng hệ thống thực thi tập lệnh sử dụng VBScript hoặc JScript, nhưng có rất nhiều vấn đề phát sinh với cách làm đó

PowerShell đã thay đổi tất cả những điều đó và rất nhanh chóng. Nó không chỉ phù hợp với khả năng dòng lệnh của môi trường *nix mà còn có nhiều cải tiến và hệ thống chưa từng thấy và còn dễ sử dụng nữa

Bây giờ, phiên bản của PowerShell là 5. 1. Trải qua năm tháng cùng với các phiên bản, khả năng và môi trường thực thi đã tăng lên đáng kể

PowerShell 1. 0 Hỗ trợ quản trị bộ cục bộ của các máy Windows (bao gồm Windows Server 2003)

PowerShell 2. 0 được tích hợp với Windows 7 và Windows Server 2008 R2. Nó bổ sung hỗ trợ điều khiển từ xa và tăng đáng kể khả năng của PowerShell với các tác vụ nền, giao dịch, sự kiện, khắc phục sự cố, môi trường phát triển với Giao diện đồ họa (GUI) và nhiều lệnh ghép mới

PowerShell 3. 0 đã được phát hành như một phần của khung quản lý Windows. Nó đã được cài đặt trên Windows 8 và Windows Server 2012. Nó bổ sung các nhiệm vụ theo lịch trình, phiên kết nối, mô-đun tự động tải và nhiều lệnh mới

PowerShell 4. 0 đã được tích hợp với Windows 8. 1 và Windows Server 2012 R2. Nó bổ sung hỗ trợ cấu hình trạng thái mong muốn, cải tiến và khử lỗi, lừa đảo mạng, chuyển đổi bộ chuyển đổi

23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
4

PowerShell 5. 0 được phát hành như một phần của khung quản lý Windows 5. PowerShell 5. 1 được phát hành dưới dạng một phần của bản cập nhật Windows 10 anniversary. Bao gồm các tính năng mới bao gồm định nghĩa lớp trong PowerShell,. NET, giải quyết lỗi từ xa và giải quyết lỗi tác vụ nền, DSC trình quản lý cấu hình cục bộ và nhiều cải tiến DSC khác

PowerShell. Ngôn ngữ thực thi kịch bản

PowerShell là một ngôn ngữ lập trình rất mạnh mẽ. Nó có thể chạy các tập lệnh, rõ ràng rồi, nhưng nó cũng có các cơ chế nâng cao hơn như mô-đun, lệnh ghép tùy biến và các lớp. PowerShell là một ngôn ngữ đa cấu hình hỗ trợ hướng đối tượng, hàm và thủ tục

Nhưng có lẽ các khía cạnh quan trọng nhất của PowerShell đó là nó là một ngôn ngữ chính thức của ngôn ngữ. MẠNG LƯỚI. Nó tạo ra và sử dụng các đối tượng lắp ráp trong. NET được lập trình trong bất kỳ ngôn ngữ nào, và các đối tượng truyền lệnh liên kết của PowerShell là các đối tượng. MẠNG LƯỚI. PowerShell cũng là ngôn ngữ có kiểu dữ liệu chặt chẽ, nhưng khi thích hợp, bạn có thể bỏ qua nó và bạn không cần phải chỉ định các kiểu nếu bạn không muốn

Script thủ tục

Để thiết lập trình thủ tục, bạn cần có các chức năng, điều kiện và vòng lặp. PowerShell có tất cả những điều đó. So sánh toán tử có thể làm bạn ngạc nhiên vì chúng không sử dụng các biểu tượng thông thường. Thay vào đó bạn có.

23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
5 (bằng), 
23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
6 (nhỏ hơn), 
23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
7 (lớn hơn), 
23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
8 (lớn hơn hoặc bằng), vân vân

Dưới đây là một ví dụ về logic điều kiện được nhập vào từ người dùng và xác nhận xem nó có hợp lệ không. Lưu ý việc sử dụng toán tử

23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
9 là để cố gắng chuyển đổi đầu vào một số nguyên. If it fail, then results is
Add-Type -AssemblyName System.speech
$synth = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer
$synth.Speak("PowerShell to the people")
0

23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
5

PowerShell có nhiều khả năng và lệnh ghép để thực hiện với các tập hợp và phần chia và cắt chúng, vì vậy vòng lặp thông thường không cần thiết. Tuy nhiên, chỉ trong trường hợp bạn cần đến, thì có rất nhiều cấu trúc vòng lặp bên trong PowerShell. Bạn có thể sử dụng vòng lặp For, vòng lặp ForEach, vòng lặp While, vòng lặp Do-While và cả vòng lặp đặc biệt ForEach-Object. Dưới đây là một số ví dụ

23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
6

Lập trình chức năng

PowerShell xoay quanh chức năng thiết lập chức năng. Lệnh liên hợp là một môi trường thực thi chức năng nơi bạn có thể soạn thảo các hàm hoặc lệnh ghép động. Bạn có thể làm điều đó bằng cách tương tác, hoặc bạn có thể làm trong một kịch bản. Nếu bạn muốn thiết lập rõ ràng chức năng chức năng, bạn cũng có thể làm điều đó nhưng cú pháp thì hơi cồng kềnh. Vui lòng xem bài viết này. Lập trình chức năng trong PowerShell

Lập trình hướng đối tượng

Bạn đã nhìn thấy cách sử dụng các đối tượng. NET và các đối tượng được truyền qua lệnh liên kết. Hãy định nghĩa một lớp trong PowerShell và thực hiện một số cơ bản OO (hướng đối tượng). Tôi tạo ra ở đây một lớp cho trò chơi nhân vật với sức khỏe và áo giáp có thể bị tổn hại và tính toán sức khỏe của nó. Còn có một phương thức

Add-Type -AssemblyName System.speech
$synth = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer
$synth.Speak("PowerShell to the people")
1 để kiểm tra nếu sức khỏe > 0. Tôi sử dụng một chức năng xây dựng

Lưu ý rằng bạn phải khởi tạo các lớp PowerShell bằng cách sử dụng

Add-Type -AssemblyName System.speech
$synth = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer
$synth.Speak("PowerShell to the people")
2. Cú pháp New-Object không được hỗ trợ trong PowerShell 5. 1

23:43:05 C:\Users\the_g> Get-Clipboard -Files

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        9/15/2016  11:41 PM         135890 Capture.PNG
-a----        9/16/2016  10:09 PM        3179548 20160917_110605.jpg
-a----        9/16/2016  10:09 PM        4623977 20160917_110734.jpg
9

Bạn thậm chí có thể kế thừa nếu bạn muốn, nhưng tôi cảm thấy tại thời điểm này bạn nên sử dụng một ngôn ngữ khác cho công việc đó

Môi trường tương tác Script

PowerShell kèm theo IDE của chính nó để phát triển tập lệnh bao gồm một cửa sổ tương tác, hỗ trợ nhiều tab cho các tập lệnh với mã hoàn chỉnh có tính năng tự động, trợ giúp chương trình được tích hợp sẵn cho tất cả các lệnh ghép và nhiều hơn nữa . Nó là một công cụ rất hay, và tôi đề nghị bạn hãy thử nó một lần

Kết luận

Bây giờ, bạn đã thấy khả năng của PowerShell là một tập lệnh ngôn ngữ và đã học được khá nhiều về mục đích thiết kế và lịch sử của nó. Trong phần hai, tôi sẽ khám phá sâu các khía cạnh tương tác của PowerShell