PowerShell – Töö failide ja kataloogidega (Ülesanne 04)

Kataloogide ja failide sirvimine

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)

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

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:

Seda teades, saame neid kasutada ka atribuutides. Näiteks kuva meile ainult kataloogid:

Samas kataloogis on mul olemas ka peidetud failid. Aga et neid näha, kasuta käsu sees atribuuti -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.

Kindlasti ära unustada kasutada abitekste help Get-ChildItem jne.

Failide otsimine

Failide otsimiseks on võimalus kasutada erinevaid metamärke (wildcards):

  • ? – suvaline tähemärk
  • * – null või enam suvalist tähemärki
  • #  – suvaline numbrimärk (0…9)
  • [tähemärgid]  – suvaline tähemärk tähemärkide loetelus
  • [!tähemärgid]  – suvaline tähemärk, mida ei ole tähemärkide loetelus

Näiteks kui kasutan sõnas küsimärki s?ll, siis võimalikud vastused oleks sellel sall, sell, soll jne.

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:

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 failid
  • Get-ChildItem [a-z]* – leiab ainult tähtedega algavad failid
  • Get-ChildItem [0-9]* – leiab ainult numbritega algavad failid

Failide ja kataloogide kopeerimine

Failide või kataloogide kopeerimiseks kasuta käsku Copy-Item

Kui fail on kirjutuskaitstud, siis selle ülekirjutamiseks kasuta atribuuti -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.

Failide ja kataloogide loomine ja kustutamine

Uue faili loomiseks sobib New-Item käsk:

Eemaldamiseks aga Remove-Item

Failide sisu lisamine ja eemaldamine

Võtame praegu ette tekstifailid, mida on lihtsam töödelda. Näiteks faili sisu lugemiseks tuleb kasutada Get-Content käsku

Kogu faili sisu tühjendamiseks kasuta Clear-Content

Ja sisu loomiseks kasuta Add-Content käsku

Meeldetuletuseks, et eelmises ülesandes pidite andmed salvestama otse faili Out-File käsu abil.

Faili sisu monitoorimine

Faili lugemise juures on huvitav atribuut -wait, mis reageerib sellele kui failis toimuvad mingid muudatused jooksvalt.

Failide ja kataloogide sorteerimine

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:

Järjekorra muutmiseks saame kasutada atribuuti -descending

Ja kui vaja valida nimekirjast viimane, viimased 3, esimesed 2 vms, siis kasutame lisaks Select-Object ning selle atribuuti -last või -first

Failide ja kataloogide filtreerimine

Objektide võrdlemiseks kasuta Where-Object käsku ning võrdlust. Võrdlused antakse sümbolite lühenditega:

  • -lt – väiksem kui
  • -le – väiksem kui või võrdne
  • -gt – suurem kui
  • -ge – suurem kui või võrdne
  • -eq – võrdne
  • -ne – ei võrdu
  • -like – vastab metamärkidele

Näiteks soovime faile, mis on suuremad kui 4MB.

Võimalus on kasutada ka loogikaoperaatoreid -and ja -or. Näiteks kasutame seda faili suuruste vahemikus leidmiseks

Kui soovid välja filtreerida kuupäevade järgi, siis reeglina tuleb kuupäev sisestada nn ameerika versioonis ehk “aasta.kuu.päev”

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.

Ülesanne 4

  • Ava PowerShell
  • Liigu kataloogi C:\Windows\Temp
  • Leia üles kõik LOG laiendiga failid (ka peidetud failid)
  • Sorteeri failid suuruse järgi kahanevalt
  • Kuva ainult 3 kõige suuremat faili
  • Salvesta nimekiri faili Ülesanne4.txt
  • Lisa läbi PowerShelli faili lõppu oma nimi, kursus ja käsk, kuidas selle teksti faili lõppu lisasid

Attachments7

Viimased postitused

Meist

metshein.com on pakkunud juba üle kümne aasta tasuta eestikeelseid infotehnoloogiaga seotud kursusi. Sama kurssi püütakse järgida ka edaspidi. Eesmärk muuta arvutiõpe võimalikult lihtsaks!

metshein.com: parim eestikeelne koolitusportaal

Autorist ja kontakt: kliki siia

Kontrolli tunnistust

Tööribale