PowerShell για αρχάριους

Όταν εργαζόμαστε με το PowerShell, το πρώτο πράγμα που συναντάμε είναι εντολές (Cmdlets).
Η κλήση εντολής μοιάζει με αυτό:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

Βοήθεια

Η πρόσβαση στη βοήθεια γίνεται στο PowerShell χρησιμοποιώντας την εντολή Get-Help. Μπορείτε να καθορίσετε μία από τις παραμέτρους: παράδειγμα, λεπτομερής, πλήρης, online, showWindow.

Get-Help Get-Service -full θα εμφανίσει μια πλήρη περιγραφή του τρόπου λειτουργίας της εντολής Get-Service
Get-Help Get-S* θα εμφανίσει όλες τις διαθέσιμες εντολές και λειτουργίες ξεκινώντας με Get-S*

Υπάρχει επίσης αναλυτική τεκμηρίωση στον επίσημο ιστότοπο της Microsoft.

Ακολουθεί ένα παράδειγμα βοήθειας για την εντολή Get-Evenlog

PowerShell για αρχάριους

Εάν οι παράμετροι περικλείονται σε αγκύλες [], είναι προαιρετικές.
Δηλαδή, σε αυτό το παράδειγμα, το όνομα του ίδιου του περιοδικού είναι υποχρεωτικό και το όνομα της παραμέτρου Οχι. Εάν ο τύπος της παραμέτρου και το όνομά της περικλείονται σε παρένθεση μαζί, τότε η παράμετρος είναι προαιρετική.

Αν κοιτάξετε την παράμετρο EntryType, μπορείτε να δείτε τις τιμές που περικλείονται σε σγουρά άγκιστρα. Για αυτήν την παράμετρο, μπορούμε να χρησιμοποιήσουμε μόνο προκαθορισμένες τιμές σε σγουρά στηρίγματα.

Μπορούμε να δούμε πληροφορίες σχετικά με το εάν η παράμετρος απαιτείται στην παρακάτω περιγραφή στο πεδίο Υποχρεωτικό. Στο παραπάνω παράδειγμα, το χαρακτηριστικό After είναι προαιρετικό επειδή το Required έχει οριστεί σε false. Στη συνέχεια βλέπουμε το πεδίο Θέση απέναντι που λέει Όνομα. Αυτό σημαίνει ότι η παράμετρος είναι προσβάσιμη μόνο με το όνομα, δηλαδή:

Get-EventLog -LogName Application -After 2020.04.26

Εφόσον η παράμετρος LogName είχε τον αριθμό 0 καθορισμένο αντί για Named, αυτό σημαίνει ότι μπορούμε να έχουμε πρόσβαση στην παράμετρο χωρίς όνομα, αλλά καθορίζοντας την με την απαιτούμενη ακολουθία:

Get-EventLog Application -After 2020.04.26

Ας υποθέσουμε αυτή τη σειρά:

Get-EventLog -Newest 5 Application

Ψευδώνυμο

Για να μπορούμε να χρησιμοποιούμε γνωστές εντολές από την κονσόλα, το PowerShell έχει ψευδώνυμα (Alias).

Ένα παράδειγμα ψευδώνυμου για την εντολή Set-Location είναι το cd.

Δηλαδή, αντί να καλέσετε την εντολή

Set-Location “D:”

μπορούμε να χρησιμοποιήσουμε

cd “D:”

Ιστορικό

Για να δείτε το ιστορικό των κλήσεων εντολών, μπορείτε να χρησιμοποιήσετε το Get-History

Εκτέλεση εντολής από το ιστορικό Invoke-History 1. Επίκληση-Ιστορία 2

Εκκαθάριση ιστορικού Clear-History

Pipeline

Ένας αγωγός στο powershell είναι όταν το αποτέλεσμα της πρώτης συνάρτησης περνά στη δεύτερη. Ακολουθεί ένα παράδειγμα χρήσης του αγωγού:

Get-Verb | Measure-Object

Αλλά για να κατανοήσουμε καλύτερα τον αγωγό, ας πάρουμε ένα πιο απλό παράδειγμα. Υπάρχει μια ομάδα

Get-Verb "get"

Εάν καλέσουμε το Get-Help Get-Verb -Full βοήθεια, θα δούμε ότι η παράμετρος Verb δέχεται εισαγωγή pipline και το ByValue είναι γραμμένο σε παρένθεση.

PowerShell για αρχάριους

Αυτό σημαίνει ότι μπορούμε να ξαναγράψουμε το Get-Verb "get" σε "get" | Get-Ρήμα.
Δηλαδή, το αποτέλεσμα της πρώτης έκφρασης είναι μια συμβολοσειρά και μεταβιβάζεται στην παράμετρο Verb της εντολής Get-Verb μέσω εισαγωγής pipline ανά τιμή.
Επίσης, η είσοδος pipline μπορεί να είναι ByPropertyName. Σε αυτήν την περίπτωση, θα περάσουμε ένα αντικείμενο που έχει μια ιδιότητα με παρόμοιο όνομα Ρήμα.

Μεταβλητές

Οι μεταβλητές δεν πληκτρολογούνται έντονα και καθορίζονται με ένα σύμβολο $ μπροστά

$example = 4

Το σύμβολο > σημαίνει εισαγωγή δεδομένων
Για παράδειγμα, $example > File.txt
Με αυτήν την έκφραση θα τοποθετήσουμε τα δεδομένα από τη μεταβλητή $example σε ένα αρχείο
Ίδιο με το Set-Content -Value $example -Path File.txt

Array

Αρχικοποίηση πίνακα:

$ArrayExample = @(“First”, “Second”)

Αρχικοποίηση κενού πίνακα:

$ArrayExample = @()

Λήψη τιμής ανά ευρετήριο:

$ArrayExample[0]

Αποκτήστε ολόκληρο τον πίνακα:

$ArrayExample

Προσθήκη στοιχείου:

$ArrayExample += “Third”

$ArrayExample += @(“Fourth”, “Fifth”)

Ταξινόμηση κατά:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

Αλλά ο ίδιος ο πίνακας παραμένει αμετάβλητος κατά τη διάρκεια αυτής της ταξινόμησης. Και αν θέλουμε ο πίνακας να έχει ταξινομημένα δεδομένα, τότε πρέπει να εκχωρήσουμε ταξινομημένες τιμές:

$ArrayExample = $ArrayExample | Sort

Δεν υπάρχει πραγματικός τρόπος για να αφαιρέσετε ένα στοιχείο από έναν πίνακα στο PowerShell, αλλά μπορείτε να το κάνετε ως εξής:

$ArrayExample = $ArrayExample | where { $_ -ne “First” }

$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }

Αφαίρεση πίνακα:

$ArrayExample = $null

βρόχους

Σύνταξη βρόχου:

for($i = 0; $i -lt 5; $i++){}

$i = 0
while($i -lt 5){}

$i = 0
do{} while($i -lt 5)

$i = 0
do{} until($i -lt 5)

ForEach($item in $items){}

Έξοδος από τον βρόχο διακοπής.

Παράλειψη του στοιχείου συνέχεια.

Δηλώσεις υπό όρους

if () {} elseif () {} else

switch($someIntValue){
  1 { “Option 1” }
  2 { “Option 2” }
  default { “Not set” }
}

Λειτουργία

Ορισμός συνάρτησης:

function Example () {
  echo &args
}

Λειτουργία τρεξίματος:

Example “First argument” “Second argument”

Ορισμός ορισμάτων σε μια συνάρτηση:

function Example () {
  param($first, $second)
}

function Example ($first, $second) {}

Λειτουργία τρεξίματος:

Example -first “First argument” -second “Second argument”

Εξαίρεση

try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο