Out-File
Çıktıyı bir dosyaya gönderir.
Syntax
Out-File
[-FilePath] <string>
[[-Encoding] <Encoding>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Out-File
[[-Encoding] <Encoding>]
-LiteralPath <string>
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
cmdlet'i Out-File
çı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.
Çıkış için parametreler belirtmeniz gerektiğinde, yeniden yönlendirme işleci>
() yerine kullanınOut-File
. 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, yerel bilgisayarda çalışan işlemlerin listesini alır. İşlem nesneleri işlem hattı cmdlet'ine Out-File
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 varolan 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, yerel bilgisayarda çalışan işlemlerin listesini alır. İşlem nesneleri işlem hattı cmdlet'ine Out-File
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ışın belirli bir kodlama türüyle nasıl kodlanacakları gösterilmektedir.
$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ASCII -Width 50
Get-Process
Cmdlet, yerel bilgisayarda çalışan işlemlerin listesini alır. İşlem nesneleri, değişkeninde $Procs
depolanır. Out-File
FilePath parametresini kullanır ve geçerli dizinde Process.txtadlı bir dosya oluşturur. InputObject parametresi, içindeki işlem nesnelerini $Procs
Process.txtdosyasına geçirir. Encoding parametresi çıkışı ASCII biçimine dönüştürür. Width parametresi dosyadaki her satırı 50 karakterle sınırlar, bu nedenle bazı veriler kesilebilir.
Örnek 4: Sağlayıcı kullanma ve çıktıyı dosyaya gönderme
Bu örnekte, bir FileSystem sağlayıcı sürücüsünde olmadığınızda cmdlet'in nasıl kullanılacağı Out-File
gösterilmektedir. Get-PSProvider
Yerel bilgisayarınızda sağlayıcıları görüntülemek için 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
Komutu, Set-Location
geçerli konumu kayıt defteri sağlayıcısına Alias:
ayarlamak için Path parametresini kullanır. cmdlet'i Get-Location
için Alias:
tam yolu görüntüler.
Get-ChildItem
nesneleri işlem hattından cmdlet'ine Out-File
gönderir. Out-File
filePath parametresini kullanarak çıktının tam yolunu ve dosya adını C:\TestDir\AliasNames.txt. cmdlet'i Get-Content
Path parametresini kullanır ve dosyanın içeriğini PowerShell konsolunda görüntüler.
Örnek 5: Kapsamın tamamı için dosya çıkış genişliğini ayarlama
Bu örnekte, ve yeniden yönlendirme işlenenlerinin (>
ve >>
) tüm çağrıları Out-File
için parametresini 2000 olarak ayarlamak Width
için kullanılır$PSDefaultParameterValues
. 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
hakkında $PSDefaultParameterValues
daha fazla bilgi için bkz. about_Preference_Variables.
Parametreler
-Append
Çıktıyı var olan bir dosyanın sonuna ekler.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Cmdlet'i çalıştırmadan önce sizden onay ister.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Hedef dosya için kodlama türünü belirtir. utf8NoBOM
varsayılan değerdir.
Bu parametre için kabul edilebilir değerler şunlardır:
ascii
: ASCII (7 bit) karakter kümesi için kodlamayı kullanır.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 Sipariş İşareti (BOM) ile UTF-8 biçiminde kodlarutf8NoBOM
: Bayt Sırası İşareti (BOM) olmadan UTF-8 biçiminde kodlarutf32
: UTF-32 biçiminde kodlar.
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 (örneğin -Encoding "windows-1251"
) izin verir. Daha fazla bilgi için Encoding.CodePage için .NET belgelerine bakın.
Not
UTF-7* uygulamasının 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: | 1 |
Default value: | UTF8NoBOM |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Çıkış dosyasının yolunu belirtir.
Type: | String |
Aliases: | Path |
Position: | 0 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Salt okunur özniteliği geçersiz kılar ve mevcut salt okunur dosyanın üzerine yazar. Force parametresi güvenlik kısıtlamalarını geçersiz kılmaz.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Dosyaya yazılacak nesneleri belirtir. Nesneleri içeren bir değişken girin veya nesneleri alan bir komut veya ifade yazın.
Type: | PSObject |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | 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, 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 |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoClobber
NoClobber varolan 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ı vermeden dosyanın üzerine yazar.
Type: | SwitchParameter |
Aliases: | NoOverwrite |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoNewline
Dosyaya yazılan içeriğin yeni satır karakteriyle bitmediğini 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Cmdlet çalıştırılıyorsa ne olacağını gösterir. Cmdlet çalıştırılmaz.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Width
Çıktının her satırındaki karakter sayısını belirtir. Ek karakterler kısaltı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. tüm çağrılarının ve yeniden yönlendirme işleçlerinin Out-File
(>
ve >>
) genişliğini denetlemek istiyorsanız kullanmadan Out-File
önce ayarlayın$PSDefaultParameterValues['out-file:width'] = 2000
.
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
Herhangi bir nesneyi bu cmdlet'e geçirebilirsiniz.
Çı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 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 verileri cmdlet'e geçirmek için InputObject parametresini Out-File
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. öğesine geçirilen Out-File
ANSI tarafından dekore edilmiş çıkış, özelliğin $PSStyle.OutputRendering
ayarına göre değiştirilebilir. Daha fazla bilgi için bkz. about_ANSI_Terminals.
İlişkili Bağlantılar
Geri Bildirim
Gönderin ve geri bildirimi görüntüleyin