Begrepet CSV har også andre betydninger, for eksempel "karakterskilt verdier", "komma avgrensede filer" osv.
I denne guiden vil vi demonstrere hvordan du eksporterer data i CSV i PowerShell.
CSV -filstrukturen
CSV -formatet følger en veldig enkel struktur. Enhver CSV -fil vil ha “.CSV ”som filforlengelse. Her har jeg generert en prøve CSV -fil som inneholder
$ katteprøve.CSV
Som vi ser, inneholder hver linje flere verdier atskilt med komma. Det er ingen grense for hvor mange oppføringer en CSV -fil kan inneholde.
Enkelheten i strukturen er nøkkelfunksjonen. CSV -formatet er designet slik at det enkelt kan brukes til å eksportere data til andre programmer. Resultatet er også menneskelig lesbart og kan sees ved hjelp av hvilken som helst tekstredigerer. Kontorapper som MS Excel, Calc, etc., Støtt også CSV som standard.
Eksporterer til CSV fra PowerShell
PowerShell er et kraftig skall- og skriptspråk. Den støtter mange grunnleggende og avanserte funksjoner, inkludert eksport av forskjellige data til CSV -format.
I likhet med ethvert annet skall, har PowerShell sitt eget sett med kommandoer, kalt cmdlets. For å eksportere til CSV, kommer PowerShell med en dedikert cmdlet Eksport-CSV. Det tar et objekt som inngangen og eksporterer det til en CSV -fil.
På grunn av den enkle strukturen kan den også oppnås ved å bruke Sett-innhold cmdlet. Imidlertid krever det at du manuelt definerer CSV -strukturen. Ved hjelp av Eksport-CSV reduserer arbeidsmengden betydelig.
Hjelpesiden til Export-CSV vil vise alle de støttede kommandoene.
$ Hjelp eksport-CSV
Et praktisk eksempel vil være å eksportere listen over løpsprosesser. Det kan være nyttig i visse feilsøkings-/overvåkningsscenarier. For å få listen over prosesser, bruker vi cmdlet Få prosess.
$ Get-Process
Nå, rør utgangen til Eksport-CSV.
$ Get-Process | Export -CSV -Path/Home/Viktor/Desktop/Processes.CSV
Her beskriver flagget "-Path" stedet for å lagre den genererte CSV-filen. For å sjekke innholdet i CSV -filen, bruk cmdlet Få innhold.
$ Get Content/Home/Viktor/Desktop/Processes.CSV
Tilpasset avgrenser
For enhver CSV -fil er det standard å bruke komma (,) som avgrenseren. Imidlertid kan det være lurt å endre avgrenser til noe annet enn et komma i visse situasjoner. Export-CSV CMDLET støtter å sette en tilpasset avgrenser for CSV-filen. Det kan være hvilken som helst karakter.
I det følgende eksemplet bruker vi en semikolon (;) som avgrenseren.
$ Get-Process | Eksport -csv -NotypeInformation -Delimiter ";" -Path/Home/Viktor/Desktop/Processes.CSV
La oss sjekke output fra kommandoen.
$ Get Content/Home/Viktor/Desktop/Processes.CSV
Leseren til eksisterende CSV -fil
De Eksport-CSV CMDLET støtter å legge til innhold til eksisterende CSV -filer. Det kan bidra til å samle data i en enkelt database.
For å legge til, legg til flagget “-Append”. Bruk plasseringen av den eksisterende CSV-filen som verdien for "-Path".
$ Get-Process | Export -CSV -Append -Path/Home/Viktor/Desktop/Processes.CSV
Velge egenskaper for å skrive til CSV
La oss se raskt på utdataene fra get-prosessen først.
$ Get-Process
Her viser hver eneste kolonne en viss type info om de som kjører prosesser for øyeblikket. Hver av kolonnene representerer en egenskap til den tilhørende prosessen. Så langt har vi jobbet med alle egenskapene til prosessene (overført dem til en CSV -fil). Imidlertid er ikke alle egenskapene nødvendige for hver eneste situasjon.
Vi kan legge til et mellomfilter for å få noen få utvalgte av egenskapene. For å gjøre det, tar vi hjelp av en annen cmdlet SELECT-Object.
Vi eksporterer bare prosessnavnet (prosessnavn) og ID (ID) i følgende eksempel.
$ Get-Process | Select -Object -egenskaper ProcessName, ID | Eksport -CSV -Notypeinformasjon -Path/Home/Viktor/Desktop/Processes.CSV
$ Get Content/Home/Viktor/Desktop/Processes.CSV
Ingen overskriving
Hvis ikke legger til den eksisterende filen, vil Export-CSV overskrive den eksisterende filen som standard. I mange situasjoner kan dette forårsake uberettiget sletting av viktige logger. For å unngå slike ulykker, kan vi fortelle eksport-CSV om ikke å overskrive en eksisterende fil som standard.
For å gjøre det, legg til flagget “-noclobber”.
$ Get-Process | Export -CSV -Noclobber -Path/Home/Viktor/Desktop/Processes.CSV
Som du ser, kaster det nå en feil som nevner at filen allerede eksisterer.
Overskriving av skrivebeskyttede filer
Som standard tillater ikke en skrivebeskyttet fil redigering. Vi kan imidlertid bruke PowerShell for å tvinge redigering til filen. Denne funksjonen er bakt rett inn i eksport-CSV. Måten det gjøres på er ved å umerkes filen som skrivebeskyttet, utføre redigeringen, og deretter markere den skrivebeskyttet igjen.
For å overskrive den eksisterende skrivebeskyttede filen, bruk flagget “-Force”.
$ Get-Process | Export -CSV -Append -Force -Path/Home/Viktor/Desktop/Processes.CSV
Filkoding
For filkoding bruker Export-CSV UTF-8 som standard. Det er den universelle kodingen for alle tekstfilene. Imidlertid er det mer fornuftig i spesifikke situasjoner. Heldigvis støtter eksport-CSV å definere spesifikk koding.
For å spesifisere en spesifikk koding, bruk flagget “-koding”.
$ Get-Process | Eksport -CSV -koding-Path/Home/Viktor/Desktop/Processes.CSV
Her er en liste over alle støttede kodingsformater.
Siste tanker
Export-CSV Cmdlet i PowerShell er et kraftig verktøy for å eksportere informasjon til CSV-format. Denne guiden demonstrerer noen av måtene å eksportere-CSV. Det kan også implementeres i PowerShell -skript for å automatisere dataoverføring. Den konverterer strukturerte data til et enklere og brukerlesbart format som mange applikasjoner kan bruke.
Glad databehandling!