Dit første PowerShell-script
En trin-for-trin guide til at skrive et lille script, gemme det og køre det. Del 1 bruger programmet PowerShell ISE. Del 2 viser det samme i PowerShell-terminalen. Alle billeder er taget på en rigtig Windows 11-pc. Klik på et billede for at se det i fuld størrelse.
Del 1PowerShell ISE
1Find PowerShell ISE
Tryk på Windows-tasten og skriv Windows PowerShell ISE. Vælg Windows PowerShell ISE under Best match, og tryk Enter eller klik på Open.
2ISE er åben
Når ISE starter, ser du tre områder:
- Konsollen (den blå del): her kan du skrive kommandoer, som køres med det samme. Her kommer også resultatet, når du kører et script.
- Commands (til højre): en liste over alle kommandoer. Du kan lukke panelet med krydset, hvis du vil have mere plads.
- Script-ruden er skjult i starten. Du åbner den i næste trin.
3Opret et nyt script
Tryk Ctrl + N, eller vælg File → New. Der åbner en hvid script-rude med fanebladet Untitled1.ps1. Scripts i PowerShell har filendelsen .ps1.
4Skriv scriptet
Skriv (eller kopiér) koden herunder ind i script-ruden. ISE farver koden, så det er lettere at se, hvad der er kommandoer, variabler og tekst.
# Mit første PowerShell-script
$navn = "Verden"
Write-Host "Hej $navn!" -ForegroundColor Green
Write-Host "Klokken er nu:" (Get-Date -Format "HH:mm")
for ($i = 1; $i -le 3; $i++) {
Write-Host "Tæller: $i"
}
| Kode | Hvad sker der? |
|---|---|
# ... | En kommentar. Den bliver ikke kørt og er kun til dig. |
$navn = "Verden" | Laver en variabel. Variabler i PowerShell starter altid med $. |
Write-Host | Skriver tekst på skærmen. -ForegroundColor Green gør teksten grøn. |
Get-Date | Henter dato og klokkeslæt. -Format "HH:mm" viser kun timer og minutter. |
for (...) { } | En løkke, der kører koden mellem { } tre gange, med $i = 1, 2 og 3. |
Untitled1.ps1* betyder, at filen ikke er gemt endnu. ② Din kode5Gem scriptet
Tryk Ctrl + S, eller vælg File → Save. Vælg en mappe, giv filen et navn, fx hej.ps1, og klik Save. I eksemplet gemmes filen i mappen C:\Users\hulve\Scripts.
.ps1) ② Save
hej.ps1, og stjernen er væk, så filen er gemt.6Kør scriptet med F5
Tryk F5, eller klik på den grønne afspilknap Run Script i værktøjslinjen. Scriptet bliver kørt, og resultatet vises i den blå konsol nederst.
7Kør scriptet fra konsollen
Et gemt script kan også køres ved at skrive stien i konsollen. Klik i den blå konsol (eller tryk Ctrl + D), skriv kommandoen herunder og tryk Enter:
& C:\Users\hulve\Scripts\hej.ps1
Tegnet & betyder "kør denne fil". Står du allerede i mappen, er .\hej.ps1 nok.
Del 2PowerShell-terminalen
Du behøver ikke ISE for at køre PowerShell. I terminalen skriver du kommandoer én ad gangen og ser svaret med det samme. Her kører vi hej.ps1 fra del 1 og laver derefter et nyt script med Notesblok.
1Åbn Windows PowerShell
Tryk på Windows-tasten og skriv Windows PowerShell. Vælg Windows PowerShell (App), og tryk Enter. Pas på, at du ikke vælger ISE, som står lige under.
Der åbner et sort terminalvindue. Linjen PS C:\Users\hulve> hedder prompten. Den viser, hvilken mappe du står i, og at PowerShell venter på en kommando.
2Kør en kommando
Skriv Get-Date og tryk Enter. PowerShell kører kommandoen med det samme og viser dato og klokkeslæt. Bagefter kommer prompten igen, klar til næste kommando.
Get-Da og tryk Tab. Med ↑ henter du den forrige kommando frem igen.
3Gå til mappen med scriptet
Skriv cls for at rydde skærmen. Skriv derefter cd Scripts for at gå ind i mappen Scripts, og ls for at se, hvilke filer der ligger i den.
cd Scripts
ls
...\Scripts ② Filen hej.ps1 fra del 1cd mappe | Gå ind i en mappe |
cd .. | Gå én mappe op |
ls | Vis filer og mapper (samme som dir og Get-ChildItem) |
cls | Ryd skærmen |
4Kør scriptet
Skriv .\hej.ps1 og tryk Enter. .\ betyder "i den mappe, jeg står i".
Typisk fejl: Skriver du kun hej.ps1 uden .\, kan PowerShell ikke finde scriptet. PowerShell kører nemlig ikke filer fra den mappe, du står i, medmindre du skriver .\ foran. Læs den gule Suggestion nederst, for den fortæller præcis, hvad du skal skrive.
.\hej.ps15Lav et nyt script med Notesblok
Du kan lave et nyt script direkte fra terminalen. Skriv:
notepad tid.ps1
Filen findes ikke endnu, så Notesblok spørger, om den skal oprettes. Klik Yes.
Skriv koden herunder, gem med Ctrl + S og luk Notesblok.
# Script lavet fra terminalen
$tid = Get-Date -Format "HH:mm"
Write-Host "Hej fra terminalen!" -ForegroundColor Cyan
Write-Host "Klokken er $tid"
tid.ps1 ② Koden. Notesblok farver ikke koden som ISE, men scriptet virker lige godt.6Kør det nye script
Tilbage i terminalen skriver du .\tid.ps1 og trykker Enter.
⇄ISE eller terminal?
| PowerShell ISE | Terminal | |
|---|---|---|
| Skrive scripts | Indbygget editor med farver og forslag | Brug en editor, fx Notesblok eller VS Code |
| Køre et script | F5 | .\navn.ps1 |
| Afprøve én linje | Markér og tryk F8 | Skriv linjen og tryk Enter |
| Godt til | At lære og at skrive længere scripts | Hurtige kommandoer og at køre færdige scripts |
?Hvis det ikke virker
| Problem | Løsning |
|---|---|
Rød fejl: running scripts is disabled on this system |
Windows tillader ikke scripts endnu. Kør denne kommando én gang i konsollen, og svar Y:Set-ExecutionPolicy -Scope CurrentUser RemoteSigned |
Terminalen siger is not recognized, når du kører et script |
Skriv .\ foran filnavnet, fx .\hej.ps1, og tjek med ls, at du står i den rigtige mappe. |
| Du kan ikke se script-ruden | Tryk Ctrl + R, eller klik på den lille pil ved Script øverst til højre i konsollen. |
| Æ, ø og å bliver til mærkelige tegn | Gem filen fra ISE. ISE gemmer som UTF-8, så de danske bogstaver bliver vist rigtigt. |
| Fejl om en kommando, der ikke findes | Tjek stavningen. Bindestregen i fx Write-Host skal med, og der må ikke være mellemrum. |
Nyttige genveje
| Ctrl + N | Nyt script |
| Ctrl + S | Gem |
| F5 | Kør hele scriptet |
| F8 | Kør markeret kode |
| Ctrl + Break | Stop et script, der kører |
| Ctrl + R | Vis/skjul script-ruden |
| Ctrl + D | Hop til konsollen |
| Ctrl + I | Hop til script-ruden |