Aracılığıyla paylaş


Out-File

Çıktıyı bir dosyaya gönderir.

Sözdizimi

ByPath EnterprisePublishing

Out-File
    [-FilePath] <string>
    [[-Encoding] <Encoding>]
    [-Append]
    [-Force]
    [-NoClobber]
    [-Width <int>]
    [-NoNewline]
    [-InputObject <psobject>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ByLiteralPath

Out-File
    [[-Encoding] <Encoding>]
    -LiteralPath <string>
    [-Append]
    [-Force]
    [-NoClobber]
    [-Width <int>]
    [-NoNewline]
    [-InputObject <psobject>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

Out-File cmdlet'i çıktıyı bir dosyaya gönderir. Dosyaya yazmak için PowerShell'in biçimlendirme sistemini örtük olarak kullanır. Dosya, terminalle aynı görüntüleme gösterimini alır. Bu, tüm giriş nesneleri dize olmadığı sürece çıkışın programlı işleme için ideal olmayabileceği anlamına gelir.

Yeniden yönlendirme işlecini (>) kullanarak bir PowerShell komutunun (cmdlet, işlev, betik) çıkışını yeniden yönlendirmek, fazladan parametre olmadan Out-File'a pipe etmekle aynı işlevi görür. PowerShell 7.4, yerel bir komutun stdout akışını yeniden yönlendirmek için kullanıldığında yeniden yönlendirme işlecinin davranışını değiştirdi. Yeniden yönlendirme hakkında daha fazla bilgi için bkz. about_Redirection.

Örnekler

Örnek 1: Çıktı gönderme ve dosya oluşturma

Bu örnekte, yerel bilgisayarın işlemlerinin listesini bir dosyaya gönderme işlemi gösterilmektedir. Dosya yoksa, Out-File dosyayı belirtilen yolda oluşturur.

Get-Process | Out-File -FilePath .\Process.txt
Get-Content -Path .\Process.txt
 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
     29    22.39      35.40      10.98   42764   9 Application
     53    99.04     113.96       0.00   32664   0 CcmExec
     27    96.62     112.43     113.00   17720   9 Code

Get-Process cmdlet'i, yerel bilgisayarda çalışan işlemlerin listesini alır. İşlem nesneleri işlem hattına Out-File cmdlet'ine gönderilir. Out-File FilePath parametresini kullanır ve geçerli dizinde Process.txtadlı bir dosya oluşturur. Get-Content komutu dosyadan içerik alır ve PowerShell konsolunda görüntüler.

Örnek 2: Varolan bir dosyanın üzerine yazılmasını engelleme

Bu örnek, var olan bir dosyanın üzerine yazılmasını engeller. Varsayılan olarak, Out-File var olan dosyaların üzerine yazar.

Get-Process | Out-File -FilePath .\Process.txt -NoClobber
Out-File : The file 'C:\Test\Process.txt' already exists.
At line:1 char:15
+ Get-Process | Out-File -FilePath .\Process.txt -NoClobber
+               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Get-Process cmdlet'i, yerel bilgisayarda çalışan işlemlerin listesini alır. İşlem nesneleri işlem hattına Out-File cmdlet'ine gönderilir. Out-File FilePath parametresini kullanır ve geçerli dizindeki Process.txtadlı bir dosyaya yazmaya çalışır. NoClobber parametresi, dosyanın üzerine yazılmasını engeller ve dosyanın zaten var olduğunu belirten bir ileti görüntüler.

Örnek 3: Çıktıyı ASCII biçiminde bir dosyaya gönderme

Bu örnekte, çıkışı belirli bir kodlama türüyle kodlama gösterilmektedir.

$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ascii -Width 50

Get-Process cmdlet'i, yerel bilgisayarda çalışan işlemlerin listesini alır. İşlem nesneleri $Procsdeğişkeninde depolanır. Out-File FilePath parametresini kullanır ve geçerli dizinde Process.txtadlı bir dosya oluşturur. InputObject parametresi, $Procs içindeki işlem nesnelerini Process.txtdosyasına geçirir. Kodlama parametresi çıkışı ASCII biçimine dönüştürür. Width parametresi, dosyadaki her satırı 50 karakterle sınırlar, böylece bazı veriler kesilebilir.

Örnek 4: Sağlayıcı kullanma ve çıktıyı dosyaya gönderme

Bu örnekte, Out-File sağlayıcı sürücüsünde değilken cmdlet'in nasıl kullanılacağı gösterilmektedir. Yerel bilgisayarınızdaki sağlayıcıları görüntülemek için Get-PSProvider cmdlet'ini kullanın. Daha fazla bilgi için bkz. about_Providers.

PS> Set-Location -Path Alias:

PS> Get-Location

Path
----
Alias:\

PS> Get-ChildItem | Out-File -FilePath C:\TestDir\AliasNames.txt

PS> Get-Content -Path C:\TestDir\AliasNames.txt

CommandType     Name
-----------     ----
Alias           % -> ForEach-Object
Alias           ? -> Where-Object
Alias           ac -> Add-Content
Alias           cat -> Get-Content

Set-Location komutu, geçerli konumu kayıt defteri sağlayıcısına ayarlamak için Alias: parametresini kullanır. Get-Location cmdlet'i Alias:için tam yolu görüntüler. Get-ChildItem nesneleri işlem hattından Out-File cmdlet'ine gönderir. Out-File, çıktının tam yolunu ve dosya adını belirtmek için FilePath parametresini C:\TestDir\AliasNames.txtkullanır. Get-Content cmdlet'i Path parametresini kullanır ve dosyanın içeriğini PowerShell konsolunda görüntüler.

Örnek 5: Kapsamın tamamı için dosya çıktı genişliğini ayarlama

Bu örnekte, $PSDefaultParameterValues ve yeniden yönlendirme işleçlerinin (Width ve Out-File) tüm çağrıları için > parametresini 2000 olarak ayarlamak için >> kullanılır. Bu, geçerli kapsamda tablo biçimlendirilmiş verileri dosyaya çıkardığınız her yerde PowerShell'in PowerShell konağı konsol genişliği tarafından belirlenen çizgi genişliği yerine 2000 satır genişliğini kullanmasını sağlar.

function DemoDefaultOutFileWidth() {
    try {
        $PSDefaultParameterValues['Out-File:Width'] = 2000

        $logFile = "$PWD\logfile.txt"

        Get-ChildItem Env:\ > $logFile

        Get-Service -ErrorAction Ignore |
            Format-Table -AutoSize |
            Out-File $logFile -Append

        Get-Process | Format-Table Id,SI,Name,Path,MainWindowTitle >> $logFile
    }
    finally {
        $PSDefaultParameterValues.Remove('Out-File:Width')
    }
}

DemoDefaultOutFileWidth

$PSDefaultParameterValueshakkında daha fazla bilgi için bkz. about_Preference_Variables.

Parametreler

-Append

Çıktıyı var olan bir dosyanın sonuna ekler.

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Confirm

Cmdlet'i çalıştırmadan önce sizden onay ister.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:Cf

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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: Küçük-öncelikli bayt sırası kullanılarak UTF-16 biçiminde kodlanır.
  • 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 Sırası İşareti (BOM) olmadan UTF-8 biçiminde kodlar
  • utf32: UTF-32 biçiminde kodlar.

PowerShell 6.2'den başlayarak, Kodlama parametresi, kayıtlı kod sayfalarının sayısal kimliklerine (-Encoding 1251gibi) veya kayıtlı kod sayfalarının dize adlarına (-Encoding "windows-1251"gibi) de izin verir. Daha fazla bilgi için Encoding.CodePageiçin .NET belgelerine bakın.

PowerShell 7.4'den başlayarak, Ansi parametresinin değerini kullanarak geçerli kültürün ANSI kod sayfasının sayısal kimliğini el ile belirtmek zorunda kalmadan geçirebilirsiniz.

Uyarı

UTF-7* artık kullanılması önerilmez. PowerShell 7.1'den itibaren, utf7 parametresi için belirtirseniz bir uyarı yazılır.

Parametre özellikleri

Tür:Encoding
Default value:UTF8NoBOM
Kabul edilen değerler:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:1
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-FilePath

Çıkış dosyasının yolunu belirtir.

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:Yol

Parametre kümeleri

ByPath
Position:0
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Force

Salt okunur özniteliği geçersiz kılar ve var olan bir salt okunur dosyanın üzerine yazar. Güç parametresi güvenlik kısıtlamalarını geçersiz kılmaz.

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-InputObject

Dosyaya yazılacak nesneleri belirtir. Nesneleri içeren bir değişken girin veya nesneleri alan bir komut veya ifade yazın.

Parametre özellikleri

Tür:PSObject
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:True
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-LiteralPath

Çıkış dosyasının yolunu belirtir. LiteralPath parametresi tam olarak yazıldığı gibi kullanılır. Joker karakterler kabul edilmiyor. Yol kaçış karakterleri içeriyorsa, yolu tek tırnak işaretleriyle çevreleyin. Tek tırnak işaretleri, PowerShell'in hiçbir karakteri kaçış dizisi olarak yorumlamamasını sağlar. Daha fazla bilgi için bkz. about_Quoting_Rules.

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:PSPath, LP

Parametre kümeleri

ByLiteralPath
Position:Named
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:True
Kalan bağımsız değişkenlerden elde edilen değer:False

-NoClobber

NoClobber var olan bir dosyanın üzerine yazılmasını engeller ve dosyanın zaten var olduğunu belirten bir ileti görüntüler. Varsayılan olarak, belirtilen yolda bir dosya varsa, Out-File uyarı olmadan dosyanın üzerine yazar.

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:NoOverwrite

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-NoNewline

Dosyaya yazılan içeriğin yeni satır karakteriyle bitmiyor olduğunu belirtir. Giriş nesnelerinin dize gösterimleri, çıkışı oluşturmak için birleştirilir. Çıkış dizeleri arasına boşluk veya yeni satır eklenmez. Son çıkış dizesinden sonra yeni satır eklenmez.

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-WhatIf

Cmdlet çalıştırılırsa ne olacağını gösterir. Cmdlet çalıştırılmıyor.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:Wi

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Width

Çıktının her satırındaki en fazla karakter sayısını belirtir. Ek karakterler kırpılır, sarmalanmaz. Bu parametre kullanılmazsa, genişlik konağın özelliklerine göre belirlenir. PowerShell konsolu için varsayılan değer 80 karakterdir. Out-File tüm çağrılarının ve yeniden yönlendirme işleçlerinin (> ve >>) genişliğini denetlemek istiyorsanız, $PSDefaultParameterValues['Out-File:Width'] = 2000kullanmadan önce Out-File ayarlayın.

Parametre özellikleri

Tür:Int32
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

CommonParameters

Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.

Girişler

PSObject

Herhangi bir nesneyi bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

None

Bu cmdlet çıkış döndürmez.

Notlar

Giriş nesneleri terminalde olduğu gibi otomatik olarak biçimlendirilir, ancak dosya çıktısının biçimlendirmesini açıkça denetlemek için bir Format-* cmdlet'i kullanabilirsiniz. Örneğin, Get-Date | Format-List | Out-File out.txt

PowerShell komutunun çıkışını Out-File cmdlet'ine göndermek için işlem hattını kullanın. Alternatif olarak, verileri bir değişkende depolayabilir ve cmdlet'ine veri geçirmek için Out-File parametresini kullanabilirsiniz.

Out-File verileri bir dosyaya kaydeder, ancak işlem hattına herhangi bir çıkış nesnesi üretmez.

PowerShell 7.2, ANSI kaçış dizilerinin nasıl işleneceğini denetleme özelliği ekledi. Out-File geçirilen ANSI ile dekore edilmiş çıkış, $PSStyle.OutputRendering özelliğinin ayarına göre değiştirilebilir. Daha fazla bilgi için bkz. about_ANSI_Terminals.