Get-Content
Belirtilen konumda öğenin içeriğini alır.
Sözdizimi
Get-Content
[-ReadCount <Int64>]
[-TotalCount <Int64>]
[-Tail <Int32>]
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Force]
[-Credential <PSCredential>]
[-Delimiter <String>]
[-Wait]
[-Raw]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <String>]
[<CommonParameters>]
Get-Content
[-ReadCount <Int64>]
[-TotalCount <Int64>]
[-Tail <Int32>]
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Force]
[-Credential <PSCredential>]
[-Delimiter <String>]
[-Wait]
[-Raw]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <String>]
[<CommonParameters>]
Description
Get-Content
Cmdlet, dosyadaki metin veya işlevin içeriği gibi yolun belirttiği konumda öğenin içeriğini alır. Dosyalar için içerik her seferinde bir satır okunur ve her biri bir içerik satırını temsil eden bir nesne koleksiyonu döndürür.
PowerShell 3.0'dan başlayarak, Get-Content
bir öğenin başından veya sonundan belirtilen sayıda satır da alabilir.
Örnekler
Örnek 1: Metin dosyasının içeriğini alma
Bu örnek, geçerli dizindeki bir dosyanın içeriğini alır. Dosyanın LineNumbers.txt
biçiminde 100 satır vardır, Bu X Satırıdır ve çeşitli örneklerde kullanılır.
1..100 | ForEach-Object { Add-Content -Path .\LineNumbers.txt -Value "This is line $_." }
Get-Content -Path .\LineNumbers.txt
This is Line 1
This is Line 2
...
This is line 99.
This is line 100.
1-100 dizi değerleri, işlem hattına cmdlet'ine ForEach-Object
gönderilir. ForEach-Object
dosyayı oluşturmak LineNumbers.txt
için cmdlet'iyle Add-Content
bir betik bloğu kullanır. Değişken $_
, her nesne işlem hattına gönderilirken dizi değerlerini temsil eder. Cmdlet, Get-Content
path parametresini kullanarak dosyayı belirtir LineNumbers.txt
ve içeriği PowerShell konsolunda görüntüler.
Örnek 2: Get-Content işlevinin döndürdüğü satır sayısını sınırlama
Bu komut dosyanın ilk beş satırını alır. TotalCount parametresi ilk beş içerik satırını alır. Bu örnekte, LineNumbers.txt
Örnek 1'de başvuruda bulunan kullanılır.
Get-Content -Path .\LineNumbers.txt -TotalCount 5
This is Line 1
This is Line 2
This is Line 3
This is Line 4
This is Line 5
Örnek 3: Metin dosyasından belirli bir içerik satırı alma
Bu komut bir dosyadan belirli sayıda satır alır ve ardından bu içeriğin yalnızca son satırını görüntüler. TotalCount parametresi ilk 25 içerik satırını alır. Bu örnek, Örnek 1'de başvuruda bulunılan dosyayı kullanır LineNumbers.txt
.
(Get-Content -Path .\LineNumbers.txt -TotalCount 25)[-1]
This is Line 25
Komut Get-Content
, sonraki adıma geçmeden önce tamamlanabilmesi için parantez içinde sarmalanır. Get-Content
bir satır dizisi döndürür; bu, belirli bir satır numarasını almak için parantezden sonra dizin gösterimini eklemenize olanak tanır. Bu durumda dizin, [-1]
döndürülen 25 alınan satır dizisindeki son dizini belirtir.
Örnek 4: Metin dosyasının son satırını alma
Bu komut bir dosyadan son içerik satırını alır. Bu örnek, Örnek 1'de oluşturulan dosyayı kullanır LineNumbers.txt
.
Get-Item -Path .\LineNumbers.txt | Get-Content -Tail 1
This is Line 100
Bu örnekte, cmdlet'ini Get-Item
kullanarak dosyaları adresine Get-Content
aktarabileceğinizi gösterir. Tail parametresi dosyanın son satırını alır. Bu yöntem, bir değişkendeki tüm satırları almaktan ve dizin gösterimini kullanmaktan [-1]
daha hızlıdır.
Örnek 5: Alternatif veri akışının içeriğini alma
Bu örnekte, Bir Windows NTFS biriminde depolanan dosyalar için alternatif bir veri akışının içeriğini almak için Stream parametresinin nasıl kullanılacağı açıklanmaktadır. Bu örnekte cmdlet, Set-Content
adlı Stream.txt
bir dosyada örnek içerik oluşturmak için kullanılır.
Set-Content -Path .\Stream.txt -Value 'This is the content of the Stream.txt file'
# Specify a wildcard to the Stream parameter to display all streams of the recently created file.
Get-Item -Path .\Stream.txt -Stream *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt::$DATA
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt::$DATA
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : :$DATA
Length : 44
# Retrieve the content of the primary stream.
# Note the single quotes to prevent variable substitution.
Get-Content -Path .\Stream.txt -Stream ':$DATA'
This is the content of the Stream.txt file
# Alternative way to get the same content.
Get-Content -Path .\Stream.txt -Stream ""
# The primary stream doesn't need to be specified to get the primary stream of the file.
# This gets the same data as the prior two examples.
Get-Content -Path .\Stream.txt
This is the content of the Stream.txt file
# Use the Stream parameter of Add-Content to create a new Stream containing sample content.
$addContentSplat = @{
Path = '.\Stream.txt'
Stream = 'NewStream'
Value = 'Added a stream named NewStream to Stream.txt'
}
Add-Content @addContentSplat
# Use Get-Item to verify the stream was created.
Get-Item -Path .\Stream.txt -Stream *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt::$DATA
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt::$DATA
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : :$DATA
Length : 44
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt:NewStream
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt:NewStream
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : NewStream
Length : 46
# Retrieve the content of your newly created Stream.
Get-Content -Path .\Stream.txt -Stream NewStream
Added a stream named NewStream to Stream.txt
Stream parametresi, FileSystem sağlayıcısının dinamik bir parametresidir.
Varsayılan olarak Get-Content
yalnızca varsayılan veya :$DATA
akıştan veri alır. Akışlar öznitelikler , güvenlik ayarları veya diğer veriler gibi gizli verileri depolamak için kullanılabilir. Bunlar alt öğe olmadan dizinlerde de depolanabilir.
Örnek 6: Ham içerik alma
Bu örnekteki komutlar, bir dize dizisi yerine dosyanın içeriğini tek bir dize olarak alır. Varsayılan olarak, Raw dinamik parametresi olmadan içerik yeni satırla sınırlandırılmış dize dizisi olarak döndürülür. Bu örnek, Örnek 1'de başvuruda bulunılan dosyayı kullanır LineNumbers.txt
.
$raw = Get-Content -Path .\LineNumbers.txt -Raw
$lines = Get-Content -Path .\LineNumbers.txt
Write-Host "Raw contains $($raw.Count) lines."
Write-Host "Lines contains $($lines.Count) lines."
Raw contains 1 lines.
Lines contains 100 lines.
Örnek 7: Get-Content ile Filtreleri Kullanma
Cmdlet'ine Get-Content
bir filtre belirtebilirsiniz. Path parametresini niteleme amacıyla filtreleri kullanırken, yolun içeriğini belirtmek için sondaki yıldız işareti (*
) eklemeniz gerekir.
Aşağıdaki komut dizindeki C:\Temp
tüm *.log
dosyaların içeriğini alır.
Get-Content -Path C:\Temp\* -Filter *.log
Örnek 8: Dosya içeriğini bayt dizisi olarak alma
Bu örnekte, bir dosyanın içeriğinin tek bir nesne olarak [byte[]]
nasıl alınacakları gösterilmektedir.
$byteArray = Get-Content -Path C:\temp\test.txt -AsByteStream -Raw
Get-Member -InputObject $bytearray
TypeName: System.Byte[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Add Method int IList.Add(System.Object value)
İlk komut, dosyadan bayt akışını almak için AsByteStream parametresini kullanır. Raw parametresi baytların olarak [System.Byte[]]
döndürülmesini sağlar. Raw parametresi yoksa, dönüş değeri PowerShell tarafından olarak [System.Object[]]
yorumlanan bir bayt akışıdır.
Parametreler
-AsByteStream
İçeriğin bayt akışı olarak okunması gerektiğini belirtir. AsByteStream parametresi Windows PowerShell 6.0'da kullanıma sunulmuştur.
AsByteStream parametresini Kodlama parametresiyle kullandığınızda bir uyarı oluşur. AsByteStream parametresi herhangi bir kodlamayı yoksayar ve çıkış bayt akışı olarak döndürülür.
İkili dosyalardan okurken ve ikili dosyalara yazarken, AsByteStream parametresini ve ReadCount parametresi için 0 değerini kullanın. 0 olan ReadCount değeri, tek bir okuma işleminde dosyanın tamamını okur. Varsayılan ReadCount değeri olan 1, her okuma işleminde bir bayt okur ve her baytı ayrı bir nesneye dönüştürür. ile AsByteStream parametresini Set-Content
kullanmadığınız sürece tek baytlık çıkışın borulanması hatalara Set-Content
neden olur.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Credential
Not
Bu parametre, PowerShell ile yüklenen sağlayıcılar tarafından desteklenmez. Başka bir kullanıcının kimliğine bürünmek veya bu cmdlet'i çalıştırırken kimlik bilgilerinizi yükseltmek için Invoke-Command kullanın.
Tür: | PSCredential |
Position: | Named |
Default value: | Current user |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-Delimiter
Dosyayı okurken nesnelere bölmek için kullanılan sınırlayıcıyı Get-Content
belirtir. Varsayılan değer, satır sonu karakteridir \n
. Metin dosyasını okurken, Get-Content
her biri satır sonu karakteriyle biten bir dize nesneleri koleksiyonu döndürür. Dosyada var olmayan bir sınırlayıcı girdiğinizde, Get-Content
dosyanın tamamını tek ve etkilenmemiş bir nesne olarak döndürür.
Sınırlayıcı olarak bir dosya ayırıcısı belirterek büyük bir dosyayı daha küçük dosyalara bölmek için bu parametreyi kullanabilirsiniz. Sınırlayıcı korunur (atılmaz) ve her dosya bölümündeki son öğe olur.
Sınırlayıcı, FileSystem sağlayıcısının cmdlet'e Get-Content
eklediği dinamik bir parametredir. Bu parametre yalnızca dosya sistemi sürücülerinde çalışır.
Not
Şu anda Sınırlayıcı parametresinin değeri boş bir dize olduğunda hiçbir Get-Content
şey döndürmez. Bu bilinen bir sorundur. Dosyanın tamamını tek ve etkilenmemiş bir dize olarak döndürmeye zorlamak Get-Content
için. Dosyada var olmayan bir değer girin.
Tür: | String |
Position: | Named |
Default value: | End-of-line character |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Encoding
Hedef dosya için kodlama türünü belirtir. Varsayılan değer şudur: utf8NoBOM
.
Bu parametre için kabul edilebilir değerler aşağıdaki gibidir:
ascii
: ASCII (7 bit) karakter kümesi için kodlamayı kullanır.ansi
: Geçerli kültürün ANSI kod sayfasının kodlamasını kullanır. Bu seçenek PowerShell 7.4'e eklendi.bigendianunicode
: Büyük endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.bigendianutf32
: Büyük endian bayt sırasını kullanarak UTF-32 biçiminde kodlar.oem
: MS-DOS ve konsol programları için varsayılan kodlamayı kullanır.unicode
: Little-endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.utf7
: UTF-7 biçiminde kodlar.utf8
: UTF-8 biçiminde kodlar.utf8BOM
: Bayt Sırası İşareti (BOM) ile UTF-8 biçiminde kodlarutf8NoBOM
: Bayt Sipariş İşareti (BOM) olmadan UTF-8 biçiminde kodlarutf32
: UTF-32 biçiminde kodlar.
Kodlama, FileSystem sağlayıcısının cmdlet'e Get-Content
eklediği dinamik bir parametredir.
Bu parametre yalnızca dosya sistemi sürücülerinde kullanılabilir.
PowerShell 6.2'den başlayarak Kodlama parametresi, kayıtlı kod sayfalarının (gibi-Encoding 1251
) sayısal kimliklerine veya kayıtlı kod sayfalarının dize adlarına da (gibi-Encoding "windows-1251"
) izin verir. Daha fazla bilgi için Encoding.CodePage için .NET belgelerine bakın.
PowerShell 7.4'den başlayarak Kodlama parametresinin değerini kullanarak Ansi
geçerli kültürün ANSI kod sayfasının sayısal kimliğini el ile belirtmek zorunda kalmadan geçirebilirsiniz.
Not
UTF-7* artık kullanılması önerilmez. PowerShell 7.1'den itibaren Kodlama parametresini belirtirseniz utf7
bir uyarı yazılır.
Tür: | Encoding |
Kabul edilen değerler: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Exclude
Dize dizisi olarak, bu cmdlet'in işlemde hariç tutulduğu öğeyi veya öğeleri belirtir. Bu parametrenin değeri Path parametresini niteler.
gibi *.txt
bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.
Exclude parametresi yalnızca komutu gibi C:\Windows\*
bir öğenin içeriğini içerdiğinde geçerlidir; burada joker karakter dizinin içeriğini C:\Windows
belirtir.
Tür: | String[] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | True |
-Filter
Path parametresini nitelemek için bir filtre belirtir. FileSystem sağlayıcısı, filtrelerin kullanımını destekleyen tek yüklü PowerShell sağlayıcısıdır. FileSystem filtre dilinin söz dizimini about_Wildcards bulabilirsiniz. Sağlayıcı, nesneleri alındıktan sonra PowerShell'in filtrelemesini yapmak yerine nesneleri aldığında sağlayıcı bunları uyguladığından filtreler diğer parametrelerden daha verimlidir.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | True |
-Force
Zorlama , salt okunur bir özniteliği geçersiz kılabilir veya bir dosya yolunu tamamlamak için dizinler oluşturabilir. Force parametresi dosya izinlerini değiştirmeye veya güvenlik kısıtlamalarını geçersiz kılmaya çalışmaz.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Include
Dize dizisi olarak, bu cmdlet'in işleme dahil olduğu öğeyi veya öğeleri belirtir. Bu parametrenin değeri Path parametresini niteler. gibi "*.txt"
bir yol öğesi veya deseni girin. Joker karakterlere izin verilir. Include parametresi yalnızca komutu gibi C:\Windows\*
bir öğenin içeriğini içerdiğinde geçerlidir; burada joker karakter dizinin içeriğini C:\Windows
belirtir.
Tür: | String[] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | True |
-LiteralPath
Bir veya daha fazla konumun yolunu belirtir. LiteralPath değeri tam olarak yazıldığı gibi kullanılır. Hiçbir karakter joker karakter olarak yorumlanmamıştır. Yol kaçış karakterleri içeriyorsa, tek tırnak içine alın. Tek tırnak işaretleri PowerShell'e hiçbir karakteri kaçış dizisi olarak yorumlamaması gerektiğini söyler.
Daha fazla bilgi için bkz . about_Quoting_Rules.
Tür: | String[] |
Diğer adlar: | PSPath, LP |
Position: | Named |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-Path
İçeriğin alındığı Get-Content
öğenin yolunu belirtir. Joker karakterlere izin verilir. Yollar kapsayıcılara değil öğelere giden yollar olmalıdır. Örneğin, dizin yolu değil, bir veya daha fazla dosya için yol belirtmeniz gerekir.
Tür: | String[] |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | True |
-Raw
Yeni satır karakterlerini yoksayar ve bir dizedeki dosyanın tüm içeriğini yeni satırlar korunarak döndürür. Varsayılan olarak, bir dosyadaki yeni satır karakterleri girişi dize dizisine ayırmak için sınırlayıcı olarak kullanılır. Bu parametre PowerShell 3.0'da kullanıma sunulmuştur.
Raw, FileSystem sağlayıcısının cmdlet'ine Get-Content
eklediği dinamik bir parametredir. Bu parametre yalnızca dosya sistemi sürücülerinde çalışır.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-ReadCount
İşlem hattı üzerinden aynı anda kaç satır içerik gönderileceğini belirtir. Varsayılan değer 1 şeklindedir. 0 (sıfır) veya negatif sayı değeri, tüm içeriği bir kerede gönderir.
Bu parametre görüntülenen içeriği değiştirmez, ancak içeriğin görüntülenmesi için gereken süreyi etkiler. ReadCount değeri arttıkça, ilk satırı döndürme süresi artar, ancak işlemin toplam süresi azalır. Bu, büyük öğelerde algılanabilir bir fark oluşturabilir.
Tür: | Int64 |
Position: | Named |
Default value: | 1 |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-Stream
Not
Bu Parametre yalnızca Windows'da kullanılabilir.
Belirtilen alternatif NTFS dosya akışının içeriğini dosyadan alır. Akış adını girin. Joker karakterler desteklenmez.
Stream, FileSystem sağlayıcısının cmdlet'e Get-Content
eklediği dinamik bir parametredir.
Bu parametre yalnızca Windows sistemlerindeki dosya sistemi sürücülerinde çalışır.
Bu parametre Windows PowerShell 3.0'da kullanıma sunulmuştur. PowerShell 7.2'de, Get-Content
dizinlerden ve dosyalardan alternatif veri akışlarının içeriğini alabilir.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Tail
Bir dosyanın veya başka bir öğenin sonundaki satır sayısını belirtir. Tail parametresi adını veya diğer adı Olan Last'i kullanabilirsiniz. değeri 0
satır döndürmez. Negatif değerler hataya neden olur.
Bu parametre PowerShell 3.0'da kullanıma sunulmuştur.
Tür: | Int32 |
Diğer adlar: | Last |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-TotalCount
Bir dosyanın veya başka bir öğenin başındaki satır sayısını belirtir. değeri 0
satır döndürmez. Negatif değerler hataya neden olur.
TotalCount parametre adını veya diğer adlarını (First veya Head) kullanabilirsiniz.
Tür: | Int64 |
Diğer adlar: | First, Head |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-Wait
Cmdlet'in kesintiye uğrayana kadar dosyayı açık tutarak süresiz beklemesine neden olur. Beklerken, Get-Content
dosyayı saniyede bir kez denetler ve varsa yeni satırlar oluşturur. TotalCount parametresiyle kullanıldığında, Get-Content
belirtilen sayıda satır belirtilen dosyada kullanılabilir olana kadar bekler. Örneğin, TotalCount değerini 10 olarak belirtirseniz ve dosyada zaten 10 veya daha fazla satır varsa, Get-Content
10 satır ve çıkış döndürür. Dosyada 10'dan az satır varsa, Get-Content
her satırı geldikçe çıkışını alır, ancak çıkmadan önce onuncu satır gelene kadar bekler.
Ctrl C tuşlarına+basarak Bekleme işlemini kesebilirsiniz. Dosyanın silinmesi, beklemeyi de kesen sonlandırıcı olmayan bir hataya neden olur.
Wait , FileSystem sağlayıcısının cmdlet'ine Get-Content
eklediği dinamik bir parametredir. Bu parametre yalnızca dosya sistemi sürücülerinde çalışır. Bekleme, Raw ile birleştirilemiyor.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
Okuma sayısını veya toplam sayısını bu cmdlet'e yönlendirebilirsiniz.
String[]
Yolları bu cmdlet'e yöneltebilirsiniz.
Kimlik bilgilerini bu cmdlet'e yöneltebilirsiniz.
Çıkışlar
AsByteStream parametresini kullandığınızda, bu cmdlet içeriği bayt olarak döndürür.
Varsayılan olarak, bu cmdlet içeriği satır başına bir dize dizisi olarak döndürür. Raw parametresini kullandığınızda, dosyadaki her satırı içeren tek bir dize döndürür.
Notlar
PowerShell için aşağıdaki diğer adları Get-Content
içerir:
- Tüm platformlar:
gc
type
- Windows:
cat
Get-Content
Cmdlet, herhangi bir sağlayıcı tarafından kullanıma sunulan verilerle çalışacak şekilde tasarlanmıştır. Sağlayıcıları oturumunuza almak için cmdlet'ini Get-PSProvider
kullanın. Daha fazla bilgi için bkz . about_Providers.
İlişkili Bağlantılar
PowerShell