Windows käsurida
Igale arvutile on töötamiseks paigaldatud operatsioonisüsteem (näiteks MS...
Selles peatükis õpime kuidas liikuda kataloogide vahel ning hallata faile PowerShellis. Loodetavasti oled/mäletad, kuidas liikusid Command Prompt konsooliaknas. Samad käsud toimivad ka siin. Näiteks kataloogi valimiseks kasutame käsku cd
(change directory)
1 2 | cd g:/pisisoft |
Kui soovid kataloogis ühe kataloogi võrra tagasi üles liikuda, siis sisestasid cd ..
või kui soovid kohe otse antud ketta algusesse liikuda, siis kasuta käsku cd\
. PowerShell’is on selle jaoks oma käsk SetLocation
1 2 | Set-Location C:\Windows\System32\ |
Ja sama moodi töötavad ka tagasiminekud.
Failide sirvimiseks kasutame Get-ChildItem
käsku.
Antud käsk kuvab kenasti faili loomise aja (last write time), suuruse (length) ja nime (name). Esimene veerg “Mode” aga kuvab millega on tegemist või milliste seadetega. Näiteks kas on kataloog, või lubatud ainult lugemiseks jne. Populaarsemad neist on:
1 2 3 4 5 6 | d - directory a - archive r - readonly h - hidden s - system |
Seda teades, saame neid kasutada ka atribuutides. Näiteks kuva meile ainult kataloogid:
1 2 | Get-ChildItem -directory |
Samas kataloogis on mul olemas ka peidetud failid. Aga et neid näha, kasuta käsu sees atribuuti -force
1 2 | Get-ChildItem -force |
Täiendades seda veel -recurse
atribuudiga, kuvatakse antud kataloogi sisu ja ka alamkataloogide sisu. Ehk näites on mul multikopter kataloog piltidega ja see kuvatakse kenasti. Aga ei kuvata tühja kataloogi.
1 2 | Get-ChildItem -force -recurse |
Kindlasti ära unustada kasutada abitekste help Get-ChildItem
jne.
Failide otsimiseks on võimalus kasutada erinevaid metamärke (wildcards):
Näiteks kui kasutan sõnas küsimärki s?ll
, siis võimalikud vastused oleks sellel sall, sell, soll
jne.
1 2 | Get-ChildItem s?ll |
Palju populaarsem on hoopis tärni kasutamine. Näiteks otsides New*
, siis leitakse kõik failid, millel algus on New ja siis mis iganes. Või kui soovime näiteks kindla faili lõpuga faile:
1 2 | Get-ChildItem -recurse *.jpg |
Sulgude kasutamisega, saab täpsemini määrata millised sümbolid peaks olema järjekorras.
Get-ChildItem [ab]*
– leiab ainult tähtedega “a” ja “b” algavad failidGet-ChildItem [a-z]*
– leiab ainult tähtedega algavad failidGet-ChildItem [0-9]*
– leiab ainult numbritega algavad failidFailide või kataloogide kopeerimiseks kasuta käsku Copy-Item
1 2 | Copy-Item -path 'G:\test\New Text Document.txt' -destination c:\uusNimi.txt |
Kui fail on kirjutuskaitstud, siis selle ülekirjutamiseks kasuta atribuuti -force
1 2 | Copy-Item -path 'G:\test\New Text Document.txt' -destination c:\uusNimi.txt -force |
Kui selliselt teha kataloogile koopia, siis tehaksegi ainult sellest, kuid sisu jääb puutumata. Kasutades atribuuti -recurse
, siis võetakse kaasa ka kõik failid ja alamkataloogid.
1 2 | Copy-Item -path 'G:\test' -recurse -destination c:\ -force |
Uue faili loomiseks sobib New-Item
käsk:
1 2 | New-Item -path 'g:\test\Uus fail.txt' |
Eemaldamiseks aga Remove-Item
1 2 | Remove-Item -path 'g:\test\Uus fail.txt' |
Võtame praegu ette tekstifailid, mida on lihtsam töödelda. Näiteks faili sisu lugemiseks tuleb kasutada Get-Content
käsku
1 2 | Get-Content 'Uus fail.txt' |
Kogu faili sisu tühjendamiseks kasuta Clear-Content
1 2 | Clear-Content 'Uus fail.txt' |
Ja sisu loomiseks kasuta Add-Content
käsku
1 2 | Add-Content 'Uus fail.txt' 'Lorem Ipsum dolor sit amet.' |
Meeldetuletuseks, et eelmises ülesandes pidite andmed salvestama otse faili Out-File
käsu abil.
1 2 | Get-ChildItem -Recurse *.jpg | Out-File uus.txt |
Faili lugemise juures on huvitav atribuut -wait
, mis reageerib sellele kui failis toimuvad mingid muudatused jooksvalt.
1 2 | Get-Content uus.txt -wait |
Eelmises peatükis me juba sorteerisime ja kasutasime käsku sort
, mis tegelikult on Sort-Object
käsu alias. Ehk sama asi toimib ka siin. Sorteerime näiteks nime järgi:
1 2 | Get-ChildItem | Sort-Object Name |
Järjekorra muutmiseks saame kasutada atribuuti -descending
1 2 | Get-ChildItem | Sort-Object Name -descending |
Ja kui vaja valida nimekirjast viimane, viimased 3, esimesed 2 vms, siis kasutame lisaks Select-Object
ning selle atribuuti -last
või -first
1 2 | Get-ChildItem | Sort-Object Name -descending | Select-Object -first 5 |
Objektide võrdlemiseks kasuta Where-Object
käsku ning võrdlust. Võrdlused antakse sümbolite lühenditega:
Näiteks soovime faile, mis on suuremad kui 4MB.
1 2 | Get-ChildItem | Where-Object {$_.Length -gt 4MB} |
Võimalus on kasutada ka loogikaoperaatoreid -and
ja -or
. Näiteks kasutame seda faili suuruste vahemikus leidmiseks
1 2 | Get-ChildItem | Where-Object {$_.Length -gt 2MB -and $_.Length -lt 4MB} |
Kui soovid välja filtreerida kuupäevade järgi, siis reeglina tuleb kuupäev sisestada nn ameerika versioonis ehk “aasta.kuu.päev”
1 2 | Get-ChildItem | Where-Object {$_.LastWriteTime -lt "2017.10.30"} |
Kuupäevade töötlemise toon sisse jooksvalt erinevate peatükkidega ja seepärast esialgu eraldi peatükki pole plaanis. Aga näiteks, kui soovin tänasest päevast 3-päeva tagasi. Sel juhul kasutan käsku Get-Date
, mis leiab tänase kuupäeva ning juurde või maha arvutamiseks kasutan meetodit AddDays
.
1 2 | Get-ChildItem | Where-Object {$_.LastWriteTime -gt (Get-date).AddDays(-3)} |
C:\Windows\Temp