Import-Csv
Táblázatszerű egyéni objektumokat hoz létre egy karakterrel tagolt értékfájl (CSV) elemeiből.
Syntax
DelimiterPath (Alapértelmezett)
Import-Csv
[[-Delimiter] <Char>]
[-Path] <String[]>
[-Header <String[]>]
[-Encoding <Encoding>]
[<CommonParameters>]
DelimiterLiteralPath
Import-Csv
[[-Delimiter] <Char>]
-LiteralPath <String[]>
[-Header <String[]>]
[-Encoding <Encoding>]
[<CommonParameters>]
CulturePath
Import-Csv
[-Path] <String[]>
-UseCulture
[-Header <String[]>]
[-Encoding <Encoding>]
[<CommonParameters>]
CultureLiteralPath
Import-Csv
-LiteralPath <String[]>
-UseCulture
[-Header <String[]>]
[-Encoding <Encoding>]
[<CommonParameters>]
Description
A Import-Csv parancsmag táblaszerű egyéni objektumokat hoz létre a CSV-fájlok elemeiből. A CSV-fájl minden oszlopa az egyéni objektum tulajdonságává válik, a sorokban lévő elemek pedig a tulajdonságértékekké.
Import-Csv bármilyen CSV-fájlon működik, beleértve a Export-Csv parancsmag által létrehozott fájlokat is.
A Import-Csv parancsmag paramétereivel megadhatja az oszlopfejlécsort és az elemek elválasztóját, vagy közvetlenül megadhatja, hogy a Import-Csv az aktuális kultúra listaelválasztóját használja elemelválasztóként.
A ConvertTo-Csv és ConvertFrom-Csv parancsmagokkal is átalakíthat objektumokat CSV-sztringekké (és vissza). Ezek a parancsmagok megegyeznek a Export-Csv és Import-Csv parancsmagokkal, azzal a kivétellel, hogy a folyamat adataival dolgoznak a fájlok helyett.
Ha egy CSV-fájl fejlécsor-bejegyzése üres vagy null értéket tartalmaz, a PowerShell beszúr egy alapértelmezett fejlécsornevet, és figyelmeztető üzenetet jelenít meg.
A PowerShell 6.0-tól kezdve Import-Csv mostantól támogatja a W3C kiterjesztett naplófájlformátumot.
Példák
1. példa: Folyamatobjektumok importálása
Ez a példa bemutatja, hogyan exportálhatja és importálhatja a folyamatobjektumok CSV-fájlját.
Get-Process | Export-Csv -Path .\Processes.csv
$P = Import-Csv -Path .\Processes.csv
$P | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
BasePriority NoteProperty string BasePriority=8
Company NoteProperty string Company=Microsoft Corporation
...
$P | Format-Table
Name SI Handles VM WS PM NPM Path
---- -- ------- -- -- -- --- ----
ApplicationFrameHost 4 407 2199293489152 15884288 15151104 23792 C:\WINDOWS\system32\ApplicationFrameHost.exe
...
wininit 0 157 2199112204288 4591616 1630208 10376
winlogon 4 233 2199125549056 7659520 2826240 10992 C:\WINDOWS\System32\WinLogon.exe
WinStore.App 4 846 873435136 33652736 26607616 55432 C:\Program Files\WindowsApps\Microsoft.WindowsStore_11712.1001.13.0_x64__8weky...
WmiPrvSE 0 201 2199100219392 8830976 3297280 10632 C:\WINDOWS\system32\wbem\wmiprvse.exe
WmiPrvSE 0 407 2199157727232 18509824 12922880 16624 C:\WINDOWS\system32\wbem\wmiprvse.exe
WUDFHost 0 834 2199310204928 51945472 87441408 24984 C:\Windows\System32\WUDFHost.exe
A Get-Process parancsmag folyamatobjektumokat küld a csővezetéken keresztül a Export-Csv-hez. A Export-Csv parancsmag CSV-sztringekké alakítja a folyamatobjektumokat, és menti a sztringeket a Processes.csv fájlban. A Import-Csv parancsmag importálja a CSV-sztringeket a Processes.csv fájlból.
A sztringek a $P változóba vannak mentve. A $P változót a rendszer továbbítja a csővezetékbe a Get-Member parancsmagnak, amely az importált CSV-sztringek tulajdonságait mutatja. A $P változót a rendszer a folyamatkörnyezetbe továbbítja a Format-Table parancsmagnak, amely megjeleníti az objektumokat.
2. példa: A határoló megadása
Ez a példa bemutatja, hogyan használható a parancsmag Import-Csv paramétere.
Get-Process | Export-Csv -Path .\Processes.csv -Delimiter :
$P = Import-Csv -Path .\Processes.csv -Delimiter :
$P | Format-Table
A Get-Process parancsmag folyamatobjektumokat küld a csővezetéken a(z) Export-Csvelé. A Export-Csv parancsmag CSV-sztringekké alakítja a folyamatobjektumokat, és menti a sztringeket a Processes.csv fájlban.
A elválasztóparaméter egy konkrét kettőspont elválasztót határoz meg. A Import-Csv parancsmag importálja a CSV-sztringeket a Processes.csv fájlból. A sztringek a $P változóba vannak mentve. A $P változót a csővezetéken keresztül továbbítják a Format-Table cmdlethez.
3. példa: Adja meg az elválasztó aktuális kultúráját
Ez a példa bemutatja, hogyan használhatja a Import-Csv parancsmagot a UseCulture paraméterrel.
(Get-Culture).TextInfo.ListSeparator
Get-Process | Export-Csv -Path .\Processes.csv -UseCulture
Import-Csv -Path .\Processes.csv -UseCulture
A Get-Culture parancsmag a Beágyazott tulajdonságokat TextInfo és ListSeparator használja az aktuális kultúra alapértelmezett listaelválasztójának lekéréséhez. A Get-Process parancsmag folyamatobjektumokat küld a csővezetéken a(z) Export-Csvelé. A Export-Csv parancsmag CSV-sztringekké alakítja a folyamatobjektumokat, és menti a sztringeket a Processes.csv fájlban. A UseCulture paraméter az aktuális kultúra alapértelmezett listaelválasztóját használja. A Import-Csv parancsmag importálja a CSV-sztringeket a Processes.csv fájlból.
4. példa: Tulajdonságnevek módosítása importált objektumban
Ez a példa bemutatja, hogyan módosíthatja a tulajdonságok nevét az eredményként kapott importált objektumban a Fejléc paraméter használatával Import-Csv.
Start-Job -ScriptBlock { Get-Process } | Export-Csv -Path .\Jobs.csv -NoTypeInformation
$Header = 'State', 'MoreData', 'StatusMessage', 'Location', 'Command', 'StateInfo', 'Finished',
'InstanceId', 'Id', 'Name', 'ChildJobs', 'BeginTime', 'EndTime', 'JobType', 'Output',
'Error', 'Progress', 'Verbose', 'Debug', 'Warning', 'Information'
# Delete the default header from file
$A = Get-Content -Path .\Jobs.csv
$A = $A[1..($A.Count - 1)]
$A | Out-File -FilePath .\Jobs.csv
$J = Import-Csv -Path .\Jobs.csv -Header $Header
$J
State : Running
MoreData : True
StatusMessage :
Location : localhost
Command : Get-Process
StateInfo : Running
Finished : System.Threading.ManualResetEvent
InstanceId : a259eb63-6824-4b97-a033-305108ae1c2e
Id : 1
Name : Job1
ChildJobs : System.Collections.Generic.List`1[System.Management.Automation.Job]
BeginTime : 12/20/2018 18:59:57
EndTime :
JobType : BackgroundJob
Output : System.Management.Automation.PSDataCollection`1[System.Management.Automation.PSObject]
Error : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ErrorRecord]
Progress : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ProgressRecord]
Verbose : System.Management.Automation.PSDataCollection`1[System.Management.Automation.VerboseRecord]
Debug : System.Management.Automation.PSDataCollection`1[System.Management.Automation.DebugRecord]
Warning : System.Management.Automation.PSDataCollection`1[System.Management.Automation.WarningRecord]
Information : System.Management.Automation.PSDataCollection`1[System.Management.Automation.InformationRecord]
A Start-Job parancsmag elindít egy háttérmunkát, amelyet Get-Processfuttat. A rendszer egy feladatobjektumot küld le a folyamatba a Export-Csv parancsmodulehoz, és CSV-formátumú karakterlánccá konvertálja. A NoTypeInformation paraméter eltávolítja a típusinformációs fejlécet a CSV-kimenetből, és nem kötelező a PowerShell 6-os vagy újabb verziójában. A $Header változó egy egyéni fejlécet tartalmaz, amely a következő alapértelmezett értékeket helyettesíti: HasMoreData, JobStateInfo, PSBeginTime, PSEndTimeés PSJobTypeName. A $A változó a Get-Content parancsmaggal szerzi be a CSV-karakterláncot a Jobs.csv fájlból. A $A változó az alapértelmezett fejléc eltávolítására szolgál a fájlból. A Out-File parancsmag a Jobs.csv fájl új verzióját menti a $A változóba. A Import-Csv parancsmag importálja a Jobs.csv fájlt, és a Fejléc paraméter használatával alkalmazza a $Header változót. A $J változó tartalmazza az importált PSCustomObject, és megjeleníti az objektumot a PowerShell-konzolon.
5. példa: Egyéni objektum létrehozása CSV-fájllal
Ez a példa bemutatja, hogyan hozhat létre egyéni objektumot a PowerShellben CSV-fájl használatával.
Get-Content -Path .\Links.csv
113207,about_Aliases
113208,about_Arithmetic_Operators
113209,about_Arrays
113210,about_Assignment_Operators
113212,about_Automatic_Variables
113213,about_Break
113214,about_Command_Precedence
113215,about_Command_Syntax
144309,about_Comment_Based_Help
113216,about_CommonParameters
113217,about_Comparison_Operators
113218,about_Continue
113219,about_Core_Commands
113220,about_Data_Section
$A = Import-Csv -Path .\Links.csv -Header 'LinkID', 'TopicTitle'
$A | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
LinkID NoteProperty string LinkID=113207
TopicTitle NoteProperty string TopicTitle=about_Aliases
$A | Where-Object -Property TopicTitle -Like '*alias*'
LinkID TopicTitle
------ ----------
113207 about_Aliases
A Links.csv fájl létrehozásához használja a Get-Content kimenetben látható értékeket.
A Get-Content parancsmag megjeleníti a Links.csv fájlt. A Import-Csv parancsmag importálja a Links.csv fájlt. A Fejléc paraméter megadja a LinkId és TopicTitletulajdonságneveket. Az objektumok a $A változóban vannak tárolva. A Get-Member parancsmag a Fejléc paraméter tulajdonságneveit jeleníti meg. A Where-Object parancsmag kijelöli az TopicTitle tulajdonsággal rendelkező objektumokat, amelyek aliastartalmaznak.
6. példa: Érték nélküli CSV importálása
Ez a példa bemutatja, hogyan válaszol a PowerShell Import-Csv parancsmagja, ha a CSV-fájl fejlécsora null vagy üres értéket tartalmaz.
Import-Csv a hiányzó fejlécsor alapértelmezett nevét helyettesíti, amely az Import-Csv által visszaadott objektum tulajdonságneve lesz.
Get-Content -Path .\Projects.csv
ProjectID,ProjectName,,Completed
13,Inventory,Redmond,True
440,,FarEast,True
469,Marketing,Europe,False
Import-Csv -Path .\Projects.csv
WARNING: One or more headers weren't specified. Default names starting with "H" have been used in
place of any missing headers.
ProjectID ProjectName H1 Completed
--------- ----------- -- ---------
13 Inventory Redmond True
440 FarEast True
469 Marketing Europe False
A Get-Content parancsmag megjeleníti a Projects.csv fájlt. A fejlécsor nem tartalmaz értéket ProjectName és Befejezettközött. A Import-Csv parancsmag importálja a Projects.csv fájlt, és figyelmeztető üzenetet jelenít meg, mert H1 alapértelmezett fejlécnév.
Paraméterek
-Delimiter
A CSV-fájl tulajdonságértékeit elválasztó elválasztó karaktert adja meg. Az alapértelmezett érték egy vessző (,).
Adjon meg egy karaktert, például kettőspontot (:). Ha pontosvesszőt (;) szeretne megadni, akkor azt idézőjelek közé kell foglalnia. Ha escape-elt speciális karaktereket szeretne megadni, például a tab (`t) karaktert, zárja őket dupla idézőjelek közé.
Ha a fájlban a tényleges sztringelválasztótól eltérő karaktert ad meg, Import-Csv nem tudja létrehozni az objektumokat a CSV-sztringekből, és a teljes CSV-sztringeket adja vissza.
Paramétertulajdonságok
| Típus: | Char |
| Alapértelmezett érték: | comma (,) |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
DelimiterPath
| Position: | 1 |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
DelimiterLiteralPath
| Position: | 1 |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Encoding
Az importált CSV-fájl kódolását adja meg. Az alapértelmezett érték a utf8NoBOM.
A paraméter elfogadható értékei a következők:
-
ascii: Az ASCII (7 bites) karakterkészlet kódolását használja. -
ansi: Az aktuális kultúra ANSI-kódlapjának kódolását használja. Ez a beállítás a PowerShell 7.4-ben lett hozzáadva. -
bigendianunicode: Az UTF-16 formátumú kódolást a big-endian bájtsorrend alkalmazásával végzi. -
bigendianutf32: UTF-32 formátumban kódol nagyvégű bájtsorrend használatával. -
oem: Az alapértelmezett kódolást használja MS-DOS és konzolprogramokhoz. -
unicode: Az UTF-16 formátumban kódol kis végű bájtsorrend használatával. -
utf7: UTF-7 formátumban kódol. -
utf8: UTF-8 formátumban kódol. -
utf8BOM: UTF-8 formátumban kódolódik bájt sorrendi jel (BOM) használatával -
utf8NoBOM: UTF-8 formátumban kódol byte order mark (BOM) nélkül -
utf32: UTF-32 formátumban kódol.
A PowerShell 6.2-től kezdődően a Kódolás paraméter lehetővé teszi a regisztrált kódlapok (például -Encoding 1251) numerikus azonosítóit vagy a regisztrált kódlapok sztringneveit (például -Encoding "windows-1251"). További információt a Encoding.CodePage.NET-dokumentációjában talál.
A PowerShell 7.4-től kezdve a Ansi paraméter értékével anélkül adhat meg numerikus azonosítót az aktuális kultúra ANSI-kódlapjához, hogy manuálisan kellene megadnia.
Megjegyzés:
UTF-7* már nem ajánlott. PowerShell 7.1-től kezdve figyelmeztetés jelenik meg, ha utf7-et ad meg a kódolás paraméterhez.
Paramétertulajdonságok
| Típus: | Encoding |
| Alapértelmezett érték: | UTF8NoBOM |
| Elfogadott értékek: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Header
Egy másik oszlopfejlécsort ad meg az importált fájlhoz. Az oszlopfejléc határozza meg a Import-Csváltal létrehozott objektumok tulajdonságneveit.
Írja be az oszlopfejléceket karakterrel elválasztott listaként. Ne tegye idézőjelek közé a fejlécsztringet. Minden oszlopfejlécet egyetlen idézőjelbe foglal.
Ha kevesebb oszlopfejlécet ad meg, mint amennyi adatoszlop van, a rendszer elveti a többi adatoszlopot. Ha több oszlopfejlécet ad meg, mint az adatoszlopok, a további oszlopfejlécek üres adatoszlopokkal jönnek létre.
A Fejléc paraméter használatakor törölje az eredeti fejlécsort a CSV-fájlból. Ellenkező esetben Import-Csv létrehoz egy további objektumot a fejlécsor elemeiből.
Paramétertulajdonságok
| Típus: | String[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-LiteralPath
Megadja az importálandó CSV-fájl elérési útját. A Path-tal ellentétben a LiteralPath paraméter értéke pontosan a beírt módon lesz használva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési útvonal escape karaktereket tartalmaz, tedd azt egyes idézőjelek közé. Az egyes idézőjelek azt mondják a PowerShellnek, hogy egyetlen karaktert se értelmezzen escape szekvenciaként.
Paramétertulajdonságok
| Típus: | String[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
| Aliasok: | PSPath, LP |
Paraméterkészletek
DelimiterLiteralPath
| Position: | Named |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
CultureLiteralPath
| Position: | Named |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
-Path
Megadja az importálandó CSV-fájl elérési útját.
A Import-Csvútvonalát is továbbíthatja.
Paramétertulajdonságok
| Típus: | String[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
DelimiterPath
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
CulturePath
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
-UseCulture
Az aktuális kultúra listaelválasztót használja elválasztó elemként. Egy kultúra listaelválasztójának megkereséséhez használja a következő parancsot: (Get-Culture).TextInfo.ListSeparator.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
CulturePath
| Position: | Named |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CultureLiteralPath
| Position: | Named |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CommonParameters
Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.
Bevitelek
String
Egy elérési utat tartalmazó karakterláncot küldhet tovább ehhez a cmdlethez.
Kimenetek
Object
Ez a parancsmag a CSV-fájl tartalma által leírt objektumokat adja vissza.
Jegyzetek
A PowerShell a következő aliasokat tartalmazza Import-Csv:
- Minden platform:
ipcsv
Mivel az importált objektumok az objektumtípus CSV-verziói, a PowerShell-típusbejegyzések, amelyek az objektumtípus nem CSV-verzióit formázzák, nem ismerik fel és nem formázzák azokat.
A Import-Csv parancs eredménye olyan sztringek gyűjteménye, amelyek táblázatszerű egyéni objektumot alkotnak. Minden sor külön sztring, így az objektum Darabszám tulajdonságával megszámlálhatja a táblázat sorait. Az oszlopok az objektum tulajdonságai, a sorok elemei pedig a tulajdonságértékek.
Az oszlopfejlécsor határozza meg az oszlopok számát és az oszlopneveket. Az oszlopnevek az objektumok tulajdonságainak nevei is. Az első sort az oszlopfejlécekként értelmezi a rendszer, kivéve, ha a Fejléc paramétert használja az oszlopfejlécek megadásához. Ha bármelyik sor több értékkel rendelkezik, mint a fejlécsor, a további értékek figyelmen kívül lesznek hagyva.
Ha az oszlopfejlécsorból hiányzik egy érték, vagy null vagy üres értéket tartalmaz, Import-CsvH, majd egy számot használ a hiányzó oszlopfejléchez és tulajdonságnévhez.
A CSV-fájlban minden objektumot az objektum tulajdonságértékeinek karakterrel tagolt listája jelöl. A tulajdonságértékek sztringekké alakulnak az objektum ToString() metódusával, így a tulajdonságérték neve jelöli őket.
Export-Csv nem exportálja az objektum metódusait.
Import-Csv a W3C kiterjesztett naplóformátumot is támogatja. A kivonat karakterrel kezdődő sorokat (#) a program megjegyzésekként kezeli, és figyelmen kívül hagyja, kivéve, ha a megjegyzés #Fields: kezdődik, és az oszlopnevek tagolt listáját tartalmazza. Ebben az esetben a parancsmag ezeket az oszlopneveket használja. Ez a Windows IIS és más webkiszolgálói naplók szabványos formátuma. További információ: Bővített naplófájlformátum.