Difference between revisions of "Scriptprogrammering Februar 2017"

From Teknologisk videncenter
Jump to: navigation, search
(Tirsdag)
(Replaced content with "Denne side er tom..")
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Tidsplan=
+
Denne side er tom..
{|border=1 ;style="margin: 0 auto; text-align: center;cellpadding="5" cellspacing="0"
 
|+ Tidsplan
 
|- bgcolor=lightgrey
 
! 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:
 
<source lang="VB">
 
Get-Help searchForThisWord
 
</source>
 
 
 
 
 
==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:'''
 
<source lang="VB">
 
$minVariabel = "hej"
 
</source>
 
 
 
'''For at skrive til brugeren:'''
 
<source lang="VB">
 
Write-host "Hej bruger."
 
</source>
 
 
 
'''For at indlæse indtastet tekst fra brugeren skrives:'''
 
<source lang="VB">
 
$brugerinput = read-Host
 
</source>
 
 
 
 
 
==Scripting opgaver==
 
 
 
'''Opgave 1:''' Lav et script hvor brugeren indtaster et stykke tekst, som så bliver gemt på skrivebordet som UserInput.txt
 
 
 
''Løsning:''
 
<source lang="VB">
 
Write-Host "Indtast et stykke tekst:"
 
$UserInput = Read-Host
 
 
 
$UserInput > C:\Users\MaKN\Desktop\UserInput.txt
 
Write-Host "Dit input blev gemt på skrivebordet."
 
</source>
 
 
 
'''Opgave 2:''' Lav et script der indlæser hvad brugeren skrev i tekstfilen i en variabel.
 
 
 
''løsning:''
 
<source lang="VB">
 
$ReadFile = Get-Content C:\Users\MaKN\Desktop\UserInput.txt
 
Write-Host "The input was:" $ReadFile
 
</source>
 
 
 
'''opgave 3:''' Lav et script der kan pinge en indtastet IP. Scriptet skal så gemme resultatet i en textfil på skrivebordet.
 
 
 
''løsning:''
 
<source lang="VB">
 
Write-Host "Type an IP to ping"
 
$ip = Read-Host
 
 
 
ping $ip > C:\Users\MaKN\Desktop\ipResult.txt
 
</source>
 
 
 
'''Opgave 4:''' Lav et script hvor brugeren indtaster 2 tal, som så bliver lagt sammen (som en lommeregner)
 
 
 
''løsning:''
 
<source lang="VB">
 
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
 
</source>
 
 
 
'''Opgave 5:''' Lav et script hvor brugeren kan indtaste et navn på en process som så skal lukkes. (eksempelvis lommeregneren).
 
 
 
''løsning:''
 
<source lang="VB">
 
Write-Host "Type the name of a process that you want to kill:"
 
$killThis =  Read-Host
 
 
 
$processes = Get-Process $killThis
 
 
 
Stop-Process $processes
 
</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)
 
 
 
''Løsning:''
 
<source lang="VB">
 
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)
 
</source>
 
 
 
==Link til læsestof==
 
 
 
https://blog.udemy.com/powershell-tutorial/ - Læs fra "Using the Console" og frem.
 
 
 
 
 
=Tirsdag=
 
 
 
==Eksempler på kode==
 
 
 
'''Eksempel på if-statement:'''
 
 
 
<source lang="VB">
 
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."
 
}
 
</source>
 
 
 
'''Eksempel på if-statement med 2 tjek:'''
 
 
 
<source lang="VB">
 
Write-Host "Please log in"
 
$username = Read-Host
 
$password = Read-Host
 
 
 
if(($username -eq "Mads") -and ($password -eq "Password123"))
 
{
 
Write-Host "You logged in as Mads"
 
}
 
</source>
 
 
 
'''Eksempel på et array'''
 
<source lang="VB">
 
$heroArray = "Batand", "Superand", "Spiderand"
 
 
 
$heroArray[0] #Udskriver den første and i arrayet (Batand)
 
</source>
 
 
 
==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:''
 
<source lang="VB">
 
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."
 
}
 
</source>
 
 
 
 
 
'''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:''
 
<source lang="VB">
 
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."
 
}
 
</source>
 
 
 
'''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:'''
 
<source lang="VB">
 
$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--
 
}
 
</source>
 
 
 
==Link til læsestof:==
 
http://www.jonathanmedd.net/2015/01/how-to-make-use-of-functions-in-powershell.html - læs det hele
 
 
 
=Onsdag=
 
 
 
I dag skal vi løse opgaver, hvor vi skal bruge vores viden fra mandag og tirsdag.
 
I er velkommende til at søge efter løsninger på nettet, eller spørge hinanden.
 
 
 
Vi skal mødes klokken 12 for at holde et status møde.
 
 
 
==Opgaver==
 
 
 
===Første sæt af opgaver===
 
 
 
'''Opgave 1:'''
 
Tænd for computerens højtalere, og kør der efter disse tre kommandoer i powershell:
 
<source lang="vb">
 
[Reflection.Assembly]::LoadWithPartialName('System.Speech')
 
$speaker = New-Object System.Speech.Synthesis.SpeechSynthesizer
 
$speaker.Speak(" naa-naa naa-naa naa-naa naa-naa Batman!")
 
</source>
 
 
 
Er det muligt at få oplæse klokkes læst op hvert minut? (eller hver time)
 
 
 
''vejledning:''
 
Du skal benytte et loop der udskriver tiden.
 
Benyt eventuelt: start-sleep 60, for at pause scriptet i 60 sekunder.
 
 
 
 
 
'''Opgave 2:'''
 
Lav en funktion, der tjekker om lommeregneren er åbnet på jeres computer.
 
Hvis ja, luk da lommeregneren.
 
Hvis nej, start da lommeregneren.
 
 
 
''vejledning:''
 
Gem alle åbne lommeregner processer i en variabel.
 
benyt eksempelvis en try-catch til at finde ud af om der var et resultat.
 
 
 
 
 
'''Opgave 3:'''
 
Lav et script der kopiere alle filerne i en mappe på jeres harddisk, til en backup-mappe i opretter på jeres skrivebord.
 
 
 
(i bestemmer selv hvilken mappe der skal kopieres fra, og hvilken mappe der skal kopieres til)
 

Latest revision as of 01:27, 4 May 2017

Denne side er tom..