Όταν εργαζόμαστε με το 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
Εάν οι παράμετροι περικλείονται σε αγκύλες [], είναι προαιρετικές.
Δηλαδή, σε αυτό το παράδειγμα, το όνομα του ίδιου του περιοδικού είναι υποχρεωτικό και το όνομα της παραμέτρου
Αν κοιτάξετε την παράμετρο 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 είναι γραμμένο σε παρένθεση.
Αυτό σημαίνει ότι μπορούμε να ξαναγράψουμε το 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