PowerShell är fantastisk för att ta fram data. Men om du bara skriver data till konsolen är det borta när du stänger fönstret.
Du behöver ett sätt att spara resultaten. Det är där Out-File och Export-CSV kommer in. De låter dig spara PowerShell-resultat till filer.
Men vilken ska du välja? Och hur undviker du de vanliga misstagen?
Out-File sparar text — exakt som det ser ut på skärmen. Det är bra för rapporter och loggfiler.
Export-CSV sparar strukturerad data — en CSV-fil som Excel kan öppna och arbeta med. Det är bra för data som ska analyseras senare.
Get-Process | Out-File C:\Reports\processes.txt # Med Select för att välja vilka kolumner Get-Process | Select-Object Name, CPU, Memory | Out-File C:\Reports\processes.txt
Det sparas exakt som det ser ut på skärmen. Vanlig text, lätt att läsa för människor.
Get-Process | Select-Object Name, CPU, Memory | Export-Csv C:\Reports\processes.csv -NoTypeInformation # Öppna den sedan i Excel för analys Invoke-Item C:\Reports\processes.csv
CSV är ett format som Excel förstår perfekt. Du kan öppna, sortera, filtrera, och göra pivot-tabeller.
# Lägg till i filen istället för att skriva över Get-Process | Out-File C:\Reports\processes.txt -Append
Använd -Append för att lägga till i en befintlig fil istället för att skriva över den.
Misstag 1: Glömma -NoTypeInformation på CSV
Get-Process | Export-Csv C:\processes.csv # CSV:n får en #TYPE-rad som Excel inte gillar
Get-Process | Export-Csv C:\processes.csv -NoTypeInformation # Ren CSV som Excel älskar
Alltid -NoTypeInformation på Export-CSV!
Misstag 2: Out-File ger konstig formatering
Out-File formaterar data för att se bra ut på skärmen — men det kan skapa långor rader och dålig formatering för data:
Get-ChildItem | Out-File C:\files.txt # Resultatet ser konstigt ut — kolumner är dåligt justerade
Get-ChildItem | Select-Object Name, Length, LastWriteTime | Out-File C:\files.txt # Mycket renare utdata
Misstag 3: Använd alltid -Force för att överskriva
Get-Process | Out-File C:\processes.txt -Force # -Force skriver över filen utan att fråga
Misstag 4: Glömma att välja rätt kolumner
Get-Process | Export-Csv C:\processes.csv -NoTypeInformation # Sparar 20+ egenskaper du inte behöver
Get-Process | Select-Object Name, CPU, Memory, Handles | Export-Csv C:\processes.csv -NoTypeInformation # Mycket smalare och snabbare fil
Om dina data innehåller svenska bokstäver (åäö) behöver du vara försiktig med kodningen:
Get-Process | Select-Object Name, Description | Export-Csv C:\processes.csv -NoTypeInformation -Encoding UTF8 # Out-File också Get-Process | Out-File C:\processes.txt -Encoding UTF8
Använd -Encoding UTF8 för korrekt svenska tecken.
# Skapa en rapport över processerna
$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$reportPath = "C:\Reports\MemoryReport_$timestamp.csv"
# Hämta processer som använder mer än 100 MB minne
Get-Process |
Where-Object {$_.Memory -gt 100MB} |
Select-Object Name, @{Name="Memory(MB)";Expression={[math]::Round($_.Memory/1MB,2)}}, Handles, Threads |
Sort-Object "Memory(MB)" -Descending |
Export-Csv $reportPath -NoTypeInformation -Encoding UTF8
Write-Host "Rapport sparad: $reportPath"
Invoke-Item $reportPathDenna kodsekvens skapar en datumstämplad rapport som automatiskt öppnas i Excel.
Get-ChildItem C:\Windows -ErrorAction SilentlyContinue |
Select-Object Name,
@{Name="Size(MB)";Expression={[math]::Round($_.Length/1MB,2)}},
@{Name="LastModified";Expression={$_.LastWriteTime.ToString("yyyy-MM-dd")}} |
Export-Csv C:\filesize_report.csv -NoTypeInformationDu kan skapa helt nya kolumner med beräknade värden och snyggt formatering.
✓ Out-File
- Enkel och direkt
- Ser bra ut när man läser den
- Bra för rapporter
- Lägg till med -Append
- Lätt formatering möjlig
- Lagrar allt som text
✓ Export-CSV
- Strukturerad data
- Excel-kompatibel
- Sorterbar och filtrerbar
- Lätt att importera senare
- Pivot-tabeller möjliga
- Perfekt för data-analys
// SNABB GUIDE: OUT-FILE VS EXPORT-CSV
- Out-File = text-baserad rapport (människor läser den)
- Export-CSV = strukturerad data (Excel analyserar den)
- Export-CSV kräver -NoTypeInformation
- Använd -Encoding UTF8 för svenska tecken
- Använd Select-Object för att välja kolumner
- Använd -Force för att skriva över filer
- Använd -Append för att lägga till i Out-File
// CHECKLIST: INNAN DU SPARAR RESULTAT
- Är det rapport (Out-File) eller data (Export-CSV)?
- Har jag valt rätt kolumner med Select-Object?
- Använder jag -NoTypeInformation för CSV?
- Använder jag -Encoding UTF8 för svenska tecken?
- Är mappen C:\Reports\ redan skapad?
- Bör jag datumstämpla filnamnet?
- Behöver jag -Force för att skriva över?
- Kan jag öppna filen och verifierar den är korrekt?