Difference between revisions of "Scriptprogrammering Februar 2017"

From Teknologisk videncenter
Jump to: navigation, search
(Tirsdag)
Line 37: Line 37:
 
1. Hvordan søger vi efter hjælp i powershell?
 
1. Hvordan søger vi efter hjælp i powershell?
  
Resultat: Get-Help
+
''Resultat:'' Get-Help
  
 
2. Hvordan udskriver man alt hvad der er i den mappe som brugeren befinder sig?
 
2. Hvordan udskriver man alt hvad der er i den mappe som brugeren befinder sig?
  
Resultat: dir eller ls
+
''Resultat:'' dir eller ls
  
 
3. Hvordan skifter man den sti som brugeren befinder sig i?
 
3. Hvordan skifter man den sti som brugeren befinder sig i?
  
Resultat: cd C:\users\MyUser\Desktop\
+
''Resultat:'' cd C:\users\MyUser\Desktop\
  
 
4. Hvordan kopieres en fil?
 
4. Hvordan kopieres en fil?
  
Resultat: Copy-Item C:\Users\MaKN\Desktop\ipconfig.txt C:\Users\MaKN\
+
''Resultat:'' Copy-Item C:\Users\MaKN\Desktop\ipconfig.txt C:\Users\MaKN\
  
 
5. Hvordan slettes en fil?
 
5. Hvordan slettes en fil?
  
Resultat: Remove-Item C:\Users\MaKN\Desktop\ipconfig.txt
+
''Resultat:'' Remove-Item C:\Users\MaKN\Desktop\ipconfig.txt
  
 
6. Hvordan opretter vi en textfil?
 
6. Hvordan opretter vi en textfil?
  
Resultat: "Dette er tekst" > textDoc.txt
+
''Resultat:'' "Dette er tekst" > textDoc.txt
  
 
7. Hvordan tilføjer vi tekst til filen uden at slette indholdet?
 
7. Hvordan tilføjer vi tekst til filen uden at slette indholdet?
  
Resultat: Add-Content C:\Users\MaKN\Desktop\myTextDocument.txt "Hej!"
+
''Resultat:'' Add-Content C:\Users\MaKN\Desktop\myTextDocument.txt "Hej!"
  
 
8. Hvad er et alias?
 
8. Hvad er et alias?
  
Resultat: En genvej til en kommando
+
''Resultat:'' En genvej til en kommando
  
 
9. Hvordan oprettes et alias?
 
9. Hvordan oprettes et alias?
  
Resultat: new-alias append add-content
+
''Resultat:'' new-alias append add-content
  
 
10. Hvordan startes lommeregneren fra powershell
 
10. Hvordan startes lommeregneren fra powershell
  
Resultat: calc.exe
+
''Resultat:'' calc.exe
  
 
11. Hvordan ses en liste over kørende processer på computeren?
 
11. Hvordan ses en liste over kørende processer på computeren?
  
Resultat: Get-Process
+
''Resultat:'' Get-Process
  
 
12. Hvordan lukkes lommeregneren fra powershell?
 
12. Hvordan lukkes lommeregneren fra powershell?
  
Resultat: Stop-process [id]
+
''Resultat:'' Stop-process [id]
  
 
13. Hvordan tilgås registreringsdatabasen i powershell? (hint hkcu)
 
13. Hvordan tilgås registreringsdatabasen i powershell? (hint hkcu)
  
Resultat: Get-ChildItem hkcu:\
+
''Resultat:'' Get-ChildItem hkcu:\
  
 
14. Opret en ny nøgle i registreringsdatabasen under SOFTWARE med navnet test
 
14. Opret en ny nøgle i registreringsdatabasen under SOFTWARE med navnet test
  
Resultat: New-Item hkcu:\SOFTWARE\test
+
''Resultat:'' New-Item hkcu:\SOFTWARE\test
  
 
15. Slet nu test fra SOFTWARE
 
15. Slet nu test fra SOFTWARE
  
Resultat: Remove-Item hkcu:\SOFTWARE\test
+
''Resultat:'' Remove-Item hkcu:\SOFTWARE\test
  
  
 
==Scripting==
 
==Scripting==
  
For at oprette en variabel skrives:
+
'''For at oprette en variabel skrives:'''
 
<source lang="VB">
 
<source lang="VB">
 
$minVariabel = "hej"
 
$minVariabel = "hej"
 
</source>
 
</source>
  
For at skrive til brugeren:
+
'''For at skrive til brugeren:'''
 
<source lang="VB">
 
<source lang="VB">
 
Write-host "Hej bruger."
 
Write-host "Hej bruger."
 
</source>
 
</source>
  
For at indlæse indtastet tekst fra brugeren skrives:
+
'''For at indlæse indtastet tekst fra brugeren skrives:'''
 
<source lang="VB">
 
<source lang="VB">
 
$brugerinput = read-Host
 
$brugerinput = read-Host
Line 116: Line 116:
 
==Scripting opgaver==
 
==Scripting opgaver==
  
Opgave 1: Lav et script hvor brugeren indtaster et stykke tekst, som så bliver gemt på skrivebordet som UserInput.txt
+
'''Opgave 1:''' Lav et script hvor brugeren indtaster et stykke tekst, som så bliver gemt på skrivebordet som UserInput.txt
  
Løsning:
+
''Løsning:''
 
<source lang="VB">
 
<source lang="VB">
 
Write-Host "Indtast et stykke tekst:"
 
Write-Host "Indtast et stykke tekst:"
Line 127: Line 127:
 
</source>
 
</source>
  
Opgave 2: Lav et script der indlæser hvad brugeren skrev i tekstfilen i en variabel.
+
'''Opgave 2:''' Lav et script der indlæser hvad brugeren skrev i tekstfilen i en variabel.
  
løsning:
+
''løsning:''
 
<source lang="VB">
 
<source lang="VB">
 
$ReadFile = Get-Content C:\Users\MaKN\Desktop\UserInput.txt
 
$ReadFile = Get-Content C:\Users\MaKN\Desktop\UserInput.txt
Line 135: Line 135:
 
</source>
 
</source>
  
opgave 3: Lav et script der kan pinge en indtastet IP. Scriptet skal så gemme resultatet i en textfil på skrivebordet.
+
'''opgave 3:''' Lav et script der kan pinge en indtastet IP. Scriptet skal så gemme resultatet i en textfil på skrivebordet.
  
løsning:
+
''løsning:''
 
<source lang="VB">
 
<source lang="VB">
 
Write-Host "Type an IP to ping"
 
Write-Host "Type an IP to ping"
Line 145: Line 145:
 
</source>
 
</source>
  
Opgave 4: Lav et script hvor brugeren indtaster 2 tal, som så bliver lagt sammen (som en lommeregner)
+
'''Opgave 4:''' Lav et script hvor brugeren indtaster 2 tal, som så bliver lagt sammen (som en lommeregner)
  
løsning:
+
''løsning:''
 
<source lang="VB">
 
<source lang="VB">
 
Write-Host "Type first number"
 
Write-Host "Type first number"
Line 160: Line 160:
 
</source>
 
</source>
  
Opgave 5: Lav et script hvor brugeren kan indtaste et navn på en process som så skal lukkes. (eksempelvis lommeregneren).
+
'''Opgave 5:''' Lav et script hvor brugeren kan indtaste et navn på en process som så skal lukkes. (eksempelvis lommeregneren).
  
løsning:
+
''løsning:''
 
<source lang="VB">
 
<source lang="VB">
 
Write-Host "Type the name of a process that you want to kill:"
 
Write-Host "Type the name of a process that you want to kill:"
Line 172: Line 172:
 
</source>
 
</source>
  
Opgave 6: Lav et script hvor brugeren indtaster sin højde og vægt, og scriptet udregner brugerens BMI. ((kg) / [Højde (m)]2)
+
'''Opgave 6:''' Lav et script hvor brugeren indtaster sin højde og vægt, og scriptet udregner brugerens BMI. ((kg) / [Højde (m)]2)
  
Løsning:
+
''Løsning:''
 
<source lang="VB">
 
<source lang="VB">
 
Write-Host "What is your weight in kilo's?"
 
Write-Host "What is your weight in kilo's?"
Line 194: Line 194:
 
=Tirsdag=
 
=Tirsdag=
  
Eksempel på if-statement:
+
'''Eksempel på if-statement:'''
  
 
<source lang="VB">
 
<source lang="VB">
Line 219: Line 219:
 
</source>
 
</source>
  
Eksempel på et array:
+
'''Eksempel på et array:'''
 
<source lang="VB">
 
<source lang="VB">
 
$arr = "Batman", "Superman", "Spiderman"
 
$arr = "Batman", "Superman", "Spiderman"
Line 226: Line 226:
 
</source>
 
</source>
  
Eksempel på et foreach-loop:
+
'''Eksempel på et foreach-loop:'''
 
<source lang="VB">
 
<source lang="VB">
  
Line 240: Line 240:
 
==Opgaver==
 
==Opgaver==
  
1. Lav en simpel lommeregner, hvor brueren kan taste "1" for at lægge to tal sammen, taste "2" for at trække dem fra hinanden, 3 for at multiplicere, 4 for at dividere.
+
'''1. Lav en simpel lommeregner, hvor brueren kan taste "1" for at lægge to tal sammen, taste "2" for at trække dem fra hinanden, 3 for at multiplicere, 4 for at dividere.'''
  
Løsning:
+
''Løsning:''
 
<source lang="VB">
 
<source lang="VB">
 
cls
 
cls
Line 282: Line 282:
  
  
2. Lav et script, hvor brugeren skal indtaste det år han/hun er født.
+
'''2. Lav et script, hvor brugeren skal indtaste det år han/hun er født.
 
Hvis brugeren er over 21, modtager han en tekstbesked på skærmen hvor der står: "Du har adgang til mercantecs hemmelige stripclub".
 
Hvis brugeren er over 21, modtager han en tekstbesked på skærmen hvor der står: "Du har adgang til mercantecs hemmelige stripclub".
Er brugeren ikke over 21, modtager han beskeden "Du er for ung til at blive medlem af mercantecs hemmeligheder"
+
Er brugeren ikke over 21, modtager han beskeden "Du er for ung til at blive medlem af mercantecs hemmeligheder"'''
  
Løsning:
+
''Løsning:''
 
<source lang="VB">
 
<source lang="VB">
 
cls
 
cls
Line 305: Line 305:
 
</source>
 
</source>
  
3. Lav et script, hvor brugeren kan taste "1" for at få vist computerens mest almindelige ip-konfigurationerne på skærmen.
+
'''3. Lav et script, hvor brugeren kan taste "1" for at få vist computerens mest almindelige ip-konfigurationerne på skærmen.
 
Brugeren kan også taste 2 i stedet, for at få vise alle ip-konfigurationerne på skærmen.
 
Brugeren kan også taste 2 i stedet, for at få vise alle ip-konfigurationerne på skærmen.
Eller brugeren kan taste 3 for at få gemt en tekstfil på skrivebordet med alle ip-konfigurationerne.
+
Eller brugeren kan taste 3 for at få gemt en tekstfil på skrivebordet med alle ip-konfigurationerne.'''
  
  
Opgave 4:
+
'''Opgave 4:'''
  
Færdiggør dette program, så en tilfældig værdi bliver genereret, og man kan vinde spillet:
+
'''Færdiggør dette program, så en tilfældig værdi bliver genereret, og man kan vinde spillet:'''
 
<source lang="VB">
 
<source lang="VB">
 
$x = 5
 
$x = 5

Revision as of 12:09, 7 February 2017

Tidsplan

Tidsplan
Dag emne
Mandag Intro til PowerShell
Tirsdag Introduktion til Scriptprogrammering
Onsdag Automatisering af opgaver
Torsdag praktisk projekt
Fredag Multiple-choice test og evaluering

Generelt

Underviser: Mads Kristian Nielsen

E-mail: MaKn@mercantec.dk

Mandag

For at finde hjælp i powershell, skriv da:

Get-Help searchForThisWord


Opgaver:

1. Hvordan søger vi efter hjælp i powershell?

Resultat: Get-Help

2. Hvordan udskriver man alt hvad der er i den mappe som brugeren befinder sig?

Resultat: dir eller ls

3. Hvordan skifter man den sti som brugeren befinder sig i?

Resultat: cd C:\users\MyUser\Desktop\

4. Hvordan kopieres en fil?

Resultat: Copy-Item C:\Users\MaKN\Desktop\ipconfig.txt C:\Users\MaKN\

5. Hvordan slettes en fil?

Resultat: Remove-Item C:\Users\MaKN\Desktop\ipconfig.txt

6. Hvordan opretter vi en textfil?

Resultat: "Dette er tekst" > textDoc.txt

7. Hvordan tilføjer vi tekst til filen uden at slette indholdet?

Resultat: Add-Content C:\Users\MaKN\Desktop\myTextDocument.txt "Hej!"

8. Hvad er et alias?

Resultat: En genvej til en kommando

9. Hvordan oprettes et alias?

Resultat: new-alias append add-content

10. Hvordan startes lommeregneren fra powershell

Resultat: calc.exe

11. Hvordan ses en liste over kørende processer på computeren?

Resultat: Get-Process

12. Hvordan lukkes lommeregneren fra powershell?

Resultat: Stop-process [id]

13. Hvordan tilgås registreringsdatabasen i powershell? (hint hkcu)

Resultat: Get-ChildItem hkcu:\

14. Opret en ny nøgle i registreringsdatabasen under SOFTWARE med navnet test

Resultat: New-Item hkcu:\SOFTWARE\test

15. Slet nu test fra SOFTWARE

Resultat: Remove-Item hkcu:\SOFTWARE\test


Scripting

For at oprette en variabel skrives:

$minVariabel = "hej"

For at skrive til brugeren:

Write-host "Hej bruger."

For at indlæse indtastet tekst fra brugeren skrives:

$brugerinput = read-Host


Scripting opgaver

Opgave 1: Lav et script hvor brugeren indtaster et stykke tekst, som så bliver gemt på skrivebordet som UserInput.txt

Løsning:

Write-Host "Indtast et stykke tekst:"
$UserInput = Read-Host

$UserInput > C:\Users\MaKN\Desktop\UserInput.txt
Write-Host "Dit input blev gemt på skrivebordet."

Opgave 2: Lav et script der indlæser hvad brugeren skrev i tekstfilen i en variabel.

løsning:

$ReadFile = Get-Content C:\Users\MaKN\Desktop\UserInput.txt
Write-Host "The input was:" $ReadFile

opgave 3: Lav et script der kan pinge en indtastet IP. Scriptet skal så gemme resultatet i en textfil på skrivebordet.

løsning:

Write-Host "Type an IP to ping"
$ip = Read-Host

ping $ip > C:\Users\MaKN\Desktop\ipResult.txt

Opgave 4: Lav et script hvor brugeren indtaster 2 tal, som så bliver lagt sammen (som en lommeregner)

løsning:

Write-Host "Type first number"
[int]$num1 = Read-Host

Write-Host "Type second number"
[int]$num2 = Read-Host

Write-Host
"The result is:"
$num1 + $num2

Opgave 5: Lav et script hvor brugeren kan indtaste et navn på en process som så skal lukkes. (eksempelvis lommeregneren).

løsning:

Write-Host "Type the name of a process that you want to kill:"
$killThis =  Read-Host

$processes = Get-Process $killThis

Stop-Process $processes

Opgave 6: Lav et script hvor brugeren indtaster sin højde og vægt, og scriptet udregner brugerens BMI. ((kg) / [Højde (m)]2)

Løsning:

Write-Host "What is your weight in kilo's?"
[double]$kg = Read-Host

Write-Host "What is your height in meters?"
[double]$height = Read-Host

Write-Host "Your BMi is:"

$kg / ($height * $height)

Link til læsestof

https://blog.udemy.com/powershell-tutorial/ - Læs fra "Using the Console" og frem.


Tirsdag

Eksempel på if-statement:

Write-Host "Type your name:"

$userInput = Read-Host

if($userInput -eq "Mads")
{
    Write-Host "Welcome superUser"
}
elseif($userInput -eq "Henrik")
{
    Write-Host "Welcome guest."
}
elseif($userInput -eq "Anders")
{
    Write-Host "Welcome guest."
}
else
{
    Write-Host "Bad input or wrong userName."
}

Eksempel på et array:

$arr = "Batman", "Superman", "Spiderman"

$arr[0] #Udskriver den første helte-and i arrayet (Batand)

Eksempel på et foreach-loop:

$arrat = "Batand", "Superand", "Spiderand"

foreach ($item in $array)
{
    Write-Host "There was a:"$item
}

Opgaver

1. Lav en simpel lommeregner, hvor brueren kan taste "1" for at lægge to tal sammen, taste "2" for at trække dem fra hinanden, 3 for at multiplicere, 4 for at dividere.

Løsning:

cls
Write-Host "Type 1, to add two numbers."
Write-Host "Type 2, to subtract two numbers."
Write-Host "Type 3, to multiply two numbers."
Write-Host "Type 4, to divide two numbers."

$userChoice = Read-Host

Write-Host "Type the first number"
[int]$num1 = Read-Host

Write-Host "Type the second number"
[int]$num2 = Read-Host
Write-Host "The result was:"

if($userChoice -eq "1")
{
    $num1 + $num2
}
elseif ($userChoice -eq "2")
{
    $num1 - $num2
}
elseif ($userChoice -eq "3")
{
    $num1 * $num2
}
elseif ($userChoice -eq "4")
{
    $num1 / $num2
}
else
{
    Write-Host "Didn't understand your input, please try again."
}


2. Lav et script, hvor brugeren skal indtaste det år han/hun er født. Hvis brugeren er over 21, modtager han en tekstbesked på skærmen hvor der står: "Du har adgang til mercantecs hemmelige stripclub". Er brugeren ikke over 21, modtager han beskeden "Du er for ung til at blive medlem af mercantecs hemmeligheder"

Løsning:

cls

Write-Host "Intast dit fødselsår"
$userBirthYear = Read-Host

[int]$currentYear = Get-Date -Format "yyyy"

if(($currentYear - 21) -gt $userBirthYear)
{
    Write-Host "Velkommen ind"
}
else
{
    Write-Host "Du er ikke gammel nok."
}

3. Lav et script, hvor brugeren kan taste "1" for at få vist computerens mest almindelige ip-konfigurationerne på skærmen. Brugeren kan også taste 2 i stedet, for at få vise alle ip-konfigurationerne på skærmen. Eller brugeren kan taste 3 for at få gemt en tekstfil på skrivebordet med alle ip-konfigurationerne.


Opgave 4:

Færdiggør dette program, så en tilfældig værdi bliver genereret, og man kan vinde spillet:

$x = 5
$answer = 42
while ($x -gt 0)
{
    Write-Host "Gæt et tal mellem 0..100"
    [int]$guess = Read-Host
    if($guess -gt $answer)
    {
        Write-Host "The number was too large"
    }

    $x--
}