Import-Csv
Táblázatszerű egyéni objektumokat hoz létre egy karakterrel tagolt értékfájl (CSV) elemeiből.
Syntax
Import-Csv
[[-Delimiter] <Char>]
[-Path] <String[]>
[-Header <String[]>]
[-Encoding <Encoding>]
[<CommonParameters>]
Import-Csv
[[-Delimiter] <Char>]
-LiteralPath <String[]>
[-Header <String[]>]
[-Encoding <Encoding>]
[<CommonParameters>]
Import-Csv
[-Path] <String[]>
-UseCulture
[-Header <String[]>]
[-Encoding <Encoding>]
[<CommonParameters>]
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ármely CSV-fájlon működik, beleértve a Export-Csv
parancsmag által létrehozott fájlokat is.
A parancsmag paramétereivel megadhatja az Import-Csv
oszlopfejlécsort és az elemhatárolót, vagy közvetlenül Import-Csv
használhatja az aktuális kultúra listaelválasztóját elemelválasztóként.
Az objektumok CSV-sztringekké (és vissza) alakíthatók az objektumok és ConvertFrom-Csv
a ConvertTo-Csv
parancsmagok használatával is. Ezek a parancsmagok megegyeznek a parancsmagokkal, Import-Csv
azzal a Export-CSV
kivétellel, hogy nem foglalkoznak fájlokkal.
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 Import-Csv
kezdve mostantól támogatja a W3C kiterjesztett naplófájlformátumát.
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 folyamaton Export-Csv
a . A Export-Csv
parancsmag CSV-sztringekké alakítja a folyamatobjektumokat, és menti a sztringeket a Processes.csv fájlba. A Import-Csv
parancsmag importálja a CSV-sztringeket a Processes.csv fájlból.
A sztringek a változóba $P
vannak mentve. A $P
változót a rendszer elküldi a folyamatnak az Get-Member
importált CSV-sztringek tulajdonságait megjelenítő parancsmagnak. A $P
változót a rendszer elküldi a folyamatnak a Format-Table
parancsmagnak, és megjeleníti az objektumokat.
2. példa: A határoló megadása
Ez a példa bemutatja, hogyan használható a parancsmag elválasztó paramétere Import-Csv
.
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 folyamaton keresztül.Export-Csv
A Export-Csv
parancsmag CSV-sztringekké alakítja a folyamatobjektumokat, és menti a sztringeket a Processes.csv fájlba.
A határoló paraméter kettőspont-elválasztót ad meg. A Import-Csv
parancsmag importálja a CSV-sztringeket a Processes.csv fájlból. A sztringek a változóba $P
vannak mentve. A $P
változót a rendszer elküldi a folyamatnak a Format-Table
parancsmagnak.
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 TextInfo és a ListSeparator beágyazott tulajdonságokat 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 folyamaton keresztül.Export-Csv
A Export-Csv
parancsmag CSV-sztringekké alakítja a folyamatobjektumokat, és menti a sztringeket a Processes.csv fájlba. 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 objektum Fejléc paraméterével 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érfeladatot, amely fut Get-Process
. A rendszer egy feladatobjektumot küld le a folyamatról a Export-Csv
parancsmagra, és CSV-sztringgé alakítja. 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 váltja fel: HasMoreData, JobStateInfo, PSBeginTime, P Standard kiadás ndTime és PSJobTypeName. A $A
változó a Get-Content
parancsmaggal szerzi be a CSV-sztringet 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 menti a Jobs.csv fájl új verzióját 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 változót $Header
. A $J
változó tartalmazza az importált PSCustomObject objektumot , é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 kimenetben Get-Content
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 a LinkId és a TopicTitle tulajdonságneveket adja meg. Az objektumok a változóban $A
vannak tárolva. A Get-Member
parancsmag a Fejléc paraméter tulajdonságneveit jeleníti meg. A Where-Object
parancsmag az aliast tartalmazó TopicTitle tulajdonsággal rendelkező objektumokat választja ki.
6. példa: Érték nélküli CSV importálása
Ez a példa bemutatja, hogyan reagál a Import-Csv
PowerShell parancsmagja, ha egy 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 a visszaadott objektum Import-Csv
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 were not 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
(Import-Csv -Path .\Projects.csv).H1
WARNING: One or more headers were not specified. Default names starting with "H" have been used in
place of any missing headers.
Redmond
FarEast
Europe
A Projects.csv fájl létrehozásához használja a példa kimenetében Get-Content
látható értékeket.
A Get-Content
parancsmag megjeleníti a Projects.csv fájlt. A fejlécsorból hiányzik egy érték a ProjectName és a Completed között. A Import-Csv
parancsmag importálja a Projects.csv fájlt, és figyelmeztető üzenetet jelenít meg, mivel a H1 az alapértelmezett fejlécnév. A (Import-Csv -Path .\Projects.csv).H1
parancs lekéri a H1 tulajdonságértékeket, és figyelmeztetést jelenít meg.
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 (:
). Pontosvessző (;
) megadásához a pontosvesszőt idézőjelek közé kell foglalni. Ha speciális karaktereket szeretne megadni, például a tabulátort (`t
), tegye dupla idézőjelek közé.
Ha a fájlban a tényleges sztringelválasztótól eltérő karaktert ad meg, nem tudja létrehozni az objektumokat a CSV-sztringekből, Import-Csv
és visszaadja a CSV-sztringeket.
Type: | Char |
Position: | 1 |
Default value: | comma (,) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Az importált CSV-fájl kódolását adja meg. Az alapértelmezett érték 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
: UTF-16 formátumban kódolja a big-endian bájtsorrendet.bigendianutf32
: UTF-32 formátumban kódolja a big-endian bájtsorrendet.oem
: Az MS-DOS és a konzolprogramok alapértelmezett kódolását használja.unicode
: UTF-16 formátumban kódolja a kis végű bájtsorrendet.utf7
: UTF-7 formátumban kódol.utf8
: UTF-8 formátumban kódol.utf8BOM
: UTF-8 formátumban kódol byte order mark (BOM)utf8NoBOM
: UTF-8 formátumban kódol byte order mark (BOM) nélkülutf32
: 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
Kódolás 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.
Feljegyzés
Az UTF-7* már nem ajánlott. A PowerShell 7.1-ről figyelmeztetést ír, ha utf7
megadja a Kódolás paramétert.
Type: | Encoding |
Accepted values: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Header
Egy másik oszlopfejlécsort ad meg az importált fájlhoz. Az oszlopfejléc határozza meg a létrehozott objektumok tulajdonságneveit Import-Csv
.
Í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. Import-Csv
Ellenkező esetben egy további objektumot hoz létre a fejlécsor elemeiből.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 út tartalmaz escape karaktereket, csatolja egy idézőjelek közé. Az idézőjelek azt mondják a PowerShellnek, hogy ne értelmezzen karaktereket feloldósorozatként.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
Megadja az importálandó CSV-fájl elérési útját.
Az elérési utat Import-Csv
is beszűkítheti.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Bevitelek
A parancsmag elérési útját tartalmazó sztringet csövezheti.
Kimenetek
Ez a parancsmag a CSV-fájl tartalma által leírt objektumokat adja vissza.
Jegyzetek
A PowerShell a következő aliasokat Import-Csv
tartalmazza:
- Minden platform:
ipcsv
Mivel az importált objektumok az objektumtípus CSV-verziói, nem ismeri fel és formázza őket az objektumtípus nem CSV-verzióit formázó PowerShell-típusú formázási bejegyzések.
A parancs eredménye Import-Csv
olyan sztringek gyűjteménye, amelyek táblázatszerű egyéni objektumot alkotnak. Minden sor egy 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-Csv
a H értéket, majd a hiányzó oszlopfejléc és tulajdonságnév számát használja.
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 azokat a tulajdonságérték neve jelöli. Export-Csv
nem exportálja az objektum metódusait.
Import-Csv
támogatja a W3C kiterjesztett naplóformátumot is. A sorokat #
a program megjegyzésként kezeli, és figyelmen kívül hagyja, kivéve, ha a megjegyzés az #Fields:
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.
Kapcsolódó hivatkozások
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: