Get-Content

Belirtilen konumda öğenin içeriğini alır.

Syntax

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-Objectdosyayı 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-Contentbir 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-Contentaktarabileceğ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.txtbir 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-Contentkullanmadığınız sürece tek baytlık çıkışın borulanması hatalara Set-Content neden olur.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Position:Named
Default value:End-of-line character
Required:False
Accept pipeline input:False
Accept wildcard characters: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 kodlar
  • utf8NoBOM: Bayt Sipariş İşareti (BOM) olmadan UTF-8 biçiminde kodlar
  • utf32: 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.

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

-Exclude

Dize dizisi olarak, bu cmdlet'in işlemde hariç tutulduğu öğeyi veya öğeleri belirtir. Bu parametrenin değeri Path parametresini niteler.

gibi *.txtbir 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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Int64
Position:Named
Default value:1
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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. Negatif değerler, cmdlet'in tüm içeriği döndürmesine neden olur.

Bu parametre PowerShell 3.0'da kullanıma sunulmuştur.

Type:Int32
Aliases:Last
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-TotalCount

Bir dosyanın veya başka bir öğenin başındaki satır sayısını belirtir. Negatif değerler, cmdlet'in tüm içeriği döndürmesine neden olur.

TotalCount parametre adını veya diğer adlarını (First veya Head) kullanabilirsiniz.

Type:Int64
Aliases:First, Head
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Girişler

Int64

Okuma sayısını veya toplam sayısını bu cmdlet'e yönlendirebilirsiniz.

String[]

Yolları bu cmdlet'e yöneltebilirsiniz.

PSCredential

Kimlik bilgilerini bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

Byte

AsByteStream parametresini kullandığınızda, bu cmdlet içeriği bayt olarak döndürür.

String

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-Contentiç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.