*F* Skrevet 24. oktober 2016 Del Skrevet 24. oktober 2016 Hei. Si at jeg har dette tekstdokumentet: Fisk Kanin 123 aaa999 Katt Bil Er det noen måte jeg kan tak i f.eks bare linje 4 og sette det til en variabel? Spm2: Dersom dette lar seg gjøre Hva om dokumentet ser slik ut: Fisk;Ost Kanin;Marianne 123;Kongen aaa999:audi Katt;sjakk Bil;404 Kan jeg da hente ut to verdier f.eks fra spesifikk linje? la oss si linje 4 her også å få $verdi1 = aaa999, $verdi2 = audi? Hadde hjupet meg til å få til en masse greie ting i så fall Lenke til kommentar
*F* Skrevet 26. oktober 2016 Forfatter Del Skrevet 26. oktober 2016 Da har jeg greid steg 1 $linjer = Get-Content c:\testfil.txt | Measure-Object -line $linjer = [int]$linjer.Lines [int]$linjeteller = "0" Do { $innhold = (Get-Content c:\testfil.txt)[$linjeteller] Write-Host "Starter ny runde" $innhold $linjeteller = $linjeteller+1 } until ($linjeteller -eq $linjer) Lenke til kommentar
*F* Skrevet 26. oktober 2016 Forfatter Del Skrevet 26. oktober 2016 Løst $linjer = Get-Content c:\testfil.txt | Measure-Object -line $linjer = [int]$linjer.Lines [int]$linjeteller = "0" Do { $import = (Get-Content c:\testfil.txt)[$linjeteller] Write-Host "Starter ny runde" Write-Host det første ordet er $import.Split(",")[0], det andre $import.Split(",")[1]. $linjeteller = $linjeteller+1 } until ($linjeteller -eq $linjer) Lenke til kommentar
NoBo Skrevet 26. oktober 2016 Del Skrevet 26. oktober 2016 Hei. Si at jeg har dette tekstdokumentet: Fisk Kanin 123 aaa999 Katt Bil Er det noen måte jeg kan tak i f.eks bare linje 4 og sette det til en variabel? Spm2: Dersom dette lar seg gjøre Hva om dokumentet ser slik ut: Fisk;Ost Kanin;Marianne 123;Kongen aaa999:audi Katt;sjakk Bil;404 Kan jeg da hente ut to verdier f.eks fra spesifikk linje? la oss si linje 4 her også å få $verdi1 = aaa999, $verdi2 = audi? Hadde hjupet meg til å få til en masse greie ting i så fall Det fine med PowerShell er at det er mange veier til mål Første spørsmålet ditt: "Er det noen måte jeg kan tak i f.eks bare linje 4 og sette det til en variabel?" En vri på det du selv skriver, er følgende: $Linje4 = (get-content .\Evelen.txt)[3] # (Husk at PS begynner med "0" som første forekomst!) Hvis du vil ha linje 2 til 3: $Linje2og3 = (get-content .\Evelen.txt)[1..2] Andre spørsmål: "Kan jeg da hente ut to verdier f.eks fra spesifikk linje? la oss si linje 4 her også å få $verdi1 = aaa999, $verdi2 = Audi?" Igjen, flere måter å løse dette på Alt. 1: $Evelen2 = (get-content .\Evelen2.txt)[3] # Henter ut kun linje 3 fra tekstfilen og legger dataene inn i Arrayet "$Evelen2" $verdi1 = ($Evelen2).Split(";")[0] # Henter ut første forekomst (dvs. verdien før første ";" fra linje 4") $verdi2 = ($Evelen2).Split(";")[-1] # Henter ut siste forekomst (dvs. verdien etter siste ";" fra linje 4 i filen) - NB! JEg har brukt semikolon (";") som skilletegn! Kunne ha brukt [1] hvis det var forekomst to på linje 4 jeg var ute etter # Her vil $verdi1 og $verdi2 inneholde henholdsvis verdi 1 og verdi 2 fra linje 4 i Evelen.txt (dvs. aaa999 og Audi) Alt. 2: $Evelen2 = (get-content .\Evelen2.txt)[3] # Henter ut alle verdier på linje 4 $Alleverdier = ($Evelen2).Split(";") # Legger hver enkelt forekomst fra valgte linje inn som egen forekomst i Arrayet $Alleverdier[1..($Alleverdier.Count -2)] # Eksempel på å hente ut verdiene fra forekomst 2 ("1") og den nest siste (dvs. "-2") Alt. 3: Importere tekstfilen direkte som CSV-fil: # Her har jeg tatt utgangspunkt i at tekstfilen ikke inneholder en header i første linje så jeg lager min egen $Header = "Verdi1","Verdi2","Verdi3","Verdi4" $EvelenCSV = Import-Csv -Path .\Evelen2.txt -Delimiter ";" -Encoding Default -Header $Header # Importerer hele tekstfilen og legger dataene inn i Arrayet "$EvelenCSV" $EvelenCSV[3] # Her henter jeg ut alle verdiene fra linje 4 i Arrayet som jeg lagde av tekstfilen ($EvelenCSV[3]).Verdi4 # Her henter jeg ut kun verdien av det som står på linje 4 (dvs. "[3]"), kolonne 4 (dvs. kolonnen jeg kalte "Verdi4") And the list goes on and on! Man kan Bruke andre PS-kommandoer, sammen med .NET, RegEx i PS etc. Se for øvrig Windows PowerShell Tip of the Week for eksempler. Legg merke til bruken av "–totalcount" på kommandoen "Get-Content", man kan hente ut kun de linjene man skal jobbe videre med og ikke alle linjer. nyttig hvis tekstfilen har mange linjer. Legg også merke til bruken av "Encoding" ved import/eksport av fildata. F. eks. blir norske tegn fort garbage hvis man ikke angir Encoding. Jeg lagde meg to tekstfiler med utgangspunkt i dine eksempeldata: "Evelen.txt": Fisk Kanin 123 aaa999 Katt Bil "Evelen2.txt" Fisk;Ost Kanin;Marianne 123;Kongen aaa999;audi;bbb888;bmw Katt;sjakk Bil;404 * Med forbehold om skrivefeil Lenke til kommentar
*F* Skrevet 26. oktober 2016 Forfatter Del Skrevet 26. oktober 2016 Takk for svar NoBo Selv om det var mye samme løsninger som jeg fant i mine overstående innlegg Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå