Command-separated Value
of CSV
bestanden zijn een zeer populair type tekstbestanden die voor verschillende doeleinden worden gebruikt. Wat CSV speciaal maakt is de mogelijkheid om gestructureerde gegevens op te slaan door de waarden of kolommen te scheiden met komma’s. CSV-bestanden zijn compatibel met Excel-bestanden om te importeren en exporteren.
Exporteren naar Comma Delimited CSV File
We beginnen met een eenvoudig voorbeeld. Get-Process
commando wordt gebruikt om een lijst te maken van momenteel draaiende processen met verschillende informatie zoals Handle, NPM, CPU,ID, ProcessName etc. We kunnen het commando Export-CSV gebruiken om deze procesinformatie op te slaan, omlijnd met commando.
PS> Get-Process
Nu kunnen we deze informatie over lopende processen in een CSV-bestand zetten door de uitvoer van Get-Process om te leiden. We geven de bestandsnaam op met de optie -Path
. De bestandsnaam wordt ProcessList.csv.
PS> Get-Process | Export-CSV -Path ProcessList.csv
Als alternatief kunnen we een andere directory opgeven met de optie -Path. In het volgende commando plaatsen we het bestand ProcessList.csv in de C:\Users\İsmail Baydan\Desktop
.
PS> Get-Content 'C:\Users\İsmail Baydan\Desktop\ProcessList.csv'
Set Delimiter For CSV File
Delimiters zijn een belangrijk onderdeel van de CSV-bestanden. Standaard gebruiken CSV bestanden het commando als scheidingsteken. Maar we kunnen het scheidingsteken veranderen zoals we willen. We gebruiken de optie -Delimeter om een ander scheidingsteken in te stellen. In het volgende voorbeeld stellen we het gelijkheidsteken = in als scheidingsteken. Het scheidingsteken binnen de dubbele aanhalingstekens plaatsen is een goede manier om fouten te voorkomen.
PS> Get-Process | Export-CSV -Delimiter "=" -Path ProcessList.csv
Export naar puntkomma gescheiden CSV-bestand
De komma is het standaard scheidingsteken voor CSV-bestanden. Maar we kunnen verschillende scheidingstekens gebruiken om kolommen te scheiden. In sommige gevallen kan een komma worden gebruikt binnen de inhoud die we in het CSV-bestand willen zetten. Dit zal het CSV bestand laten crashen omdat het scheidingsteken en de inhoud hetzelfde zullen zijn en het foutgevoelig zal zijn om de inhoud met het scheidingsteken te parsen. Dus een goed alternatief voor het commando scheidingsteken is de puntkomma, die zelden wordt gebruikt in CSV-bestandsinhoud. In het volgende voorbeeld stellen we de puntkomma in als scheidingsteken.
PS> Get-Process | Export-CSV -Delimiter ";" -Path ProcessList.csv
Selecteer eigenschappen om een CSV bestand te schrijven
Tot nu toe hebben we gewerkt met het Get-Process commando dat een lijst geeft van alle eigenschappen van de momenteel draaiende processen. In sommige gevallen hoeven we niet alle eigenschappen in het CSV bestand te zetten. We kunnen selecteren welke eigenschappen in het CSV bestand moeten worden opgenomen. We gebruiken hiervoor het commando Select-Object
en de optie -Property
zoals hieronder.
PS> Get-Process | Select-Object -Property ProcessName,Id | Export-CSV -Path ProcessList.csv
Toevoegen aan bestaand CSV-bestand
Een ander gebruik voor het commando Export-CSV is het toevoegen van nieuwe CSV-inhoud aan de bestaande CSV-inhoud. We kunnen de optie -Append
gebruiken die nieuwe CSV-inhoud aan het bestaande bestand toevoegt.
PS> Get-Process | Export-CSV -Delimiter -Append -Path ProcessList.csv
Overschrijf Bestaand CSV-bestand niet
Het commando Export-CSV overschrijft standaard het bestaande bestand zonder enige waarschuwing. We kunnen dit voorkomen met de optie -NoClobber
die het bestaande bestand niet zal overschrijven en een foutmelding zal geven als het bestand al bestaat.
PS> Get-Process | Export-CSV -NoClobber -Path ProcessList.csv
Overnrite Read-Only Files
Door de standaardinstelling kunnen alleen-lezen bestanden worden standaard bijgevoegd. Maar het Export-CSV commando kan het alleen-lezen attribuut wijzigen voor bewerking en daarna weer teruggaan naar alleen-lezen. We zullen de schrijfbewerking forceren met de optie -Force
zoals hieronder.
PS> Get-Process | Export-CSV -Append -Force -Path ProcessList.csv
Set CSV File Encoding
Aangezien CSV bestand een tekst bestand is heeft het een encoding optie. Standaard is UTF-8 de standaard codering voor de tekst en CSV bestanden. Maar in sommige gevallen kan het nodig zijn om de standaard codering te wijzigen en een specifieke codering in te stellen. We kunnen de optie -Encoding gebruiken en een coderingsnaam opgeven zoals ASCII. In het volgende voorbeeld stellen we de CSV-bestandscodering in als ASCII.
PS> Get-Process | Export-CSV -Encoding ASCII -Path ProcessList.csv
Hieronder staan populaire en beschikbare coderingsformaten die kunnen worden gebruikt met Export-CSV.
- ASCII
- BigEndianUnicode
- OEM
- Unicode
- UTF7
- UTF8
- UTF8BOM
- UTF8NoBOM
- UTF32