Avatar billede Johnnie Novice
17. maj 2019 - 08:20 Der er 3 kommentarer

powershell random x- antal grupper

Der skal udarbejdes et powershell script, som via. en CSV fil med fornavn og efternavn, kan generere RANDOM x-antal grupper, ud fra x-antal medlemmer i gruppen, disse grupper skal via. out-file over i en txt fil
Avatar billede CRKrogh Ekspert
18. maj 2019 - 20:02 #1
Hvordan ser use-case ud for sådan en opgave - skole, måske?
Avatar billede RasmusE Praktikant
20. maj 2019 - 10:38 #2
$CSVPath          = "$PSScriptRoot/PersonList.csv"                        #Sti til CSV fil
$personList      = import-csv -Path $CSVPath                              #Importer CSV fil til denne variabel
$groupCount      = get-random -Minimum 1 -Maximum $personList.Count      #Tilfældigt antal grupper
$personCount      = get-random -Minimum 2 -Maximum ($personList.Count - 1) #Tilfældigt antal personer i en gruppe
$personListOffset = 0                                                      #Offset der bruges til at hente personer fra PersonList til hver gruppe (Udregn index) - offset øges efter hver gruppe
$groupsCreated    = 0                                                      #Antal oprettede grupper - bruges til meddelse til sidst

for ($i = 0; $i -lt $groupCount; $i++) {                                  #Loop alle grupper igennem
    $created  = $false                                                    #Bruges til at angive om gruppen blev oprettet
    $groupPath = "$PSScriptRoot/Group_$($i + 1).txt"                      #Stien til gruppefilen (txt-filen)

    for ($j = 0; $j -lt $personCount; $j++) {                              #Loop igennem antal (random) personer
        $index = $j + $personListOffset                                    #Udregn index med offset (Offset øges efter hver gruppe)

        if ($index -lt $personList.Count) {                                #Hvis der stadig er flere personer tilbage så tilføj til gruppe-filen
            if ((Test-Path $groupPath) -and (-not $created)) {            #Hvis gruppe-filen findes fra tidligere eksekvering så slet den (Ny fil)
                Remove-Item $groupPath -Force
            }

            $currPerson = $personList.get($j + $personListOffset)          #Hent personen fra PersonList

            "$($currPerson.Fornavn) $($currPerson.Efternavn)" | out-file -FilePath $groupPath -Append #Tilføj personen til filen (Med Out-File)
            $created = $true                                              #Sæt flag der indikerer at gruppen blev oprettet
        }
    }
    $personListOffset += $personCount                                      #Offset øges for hver gruppe

    if ($created ) {                                                      #Forøg antal oprettede grupper (Bruges til meddelse til sidst)
        $groupsCreated++
    }
}

write-host "DONE`r`n$groupsCreated created!"                              #Fortæl hvor mange grupper der blev oprettet
Avatar billede Johnnie Novice
20. maj 2019 - 11:40 #3
😎mange Tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester