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.