Out-File
Çıktıyı bir dosyaya gönderir.
Sözdizimi
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
Out-File
Cmdlet, çı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 'a yönlendirmeye Out-File
işlevsel olarak eşdeğerdir.
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
cmdlet'i Get-Process
, yerel bilgisayarda çalışan işlemlerin listesini alır. İşlem nesneleri işlem hattına cmdlet'ine Out-File
gönderilir.
Out-File
FilePath parametresini kullanır ve geçerli dizinde Process.txt adlı bir dosya oluşturur. Komut Get-Content
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
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cmdlet'i Get-Process
, yerel bilgisayarda çalışan işlemlerin listesini alır. İşlem nesneleri işlem hattına cmdlet'ine Out-File
gönderilir.
Out-File
FilePath parametresini kullanır ve geçerli dizindeki Process.txt adlı 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
cmdlet'i Get-Process
, 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.txt adlı bir dosya oluşturur.
InputObject parametresi, içindeki işlem nesnelerini $Procs
dosya Process.txt geçirir.
Kodlama 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 FileSystemOut-File
nasıl kullanılacağı 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 ayarlamak için PathAlias:
. 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
, C:\TestDir\AliasNames.txt çıktısının tam yolunu ve dosya adını belirtmek için FilePath parametresini kullanır. 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 çıktı genişliğini ayarlama
Bu örnek, ve yeniden yönlendirme işleçlerinin ($PSDefaultParameterValues
ve Width
) tüm çağrıları Out-File
için parametresini 2000 olarak ayarlamak >
için kullanı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
hakkında $PSDefaultParameterValues
daha fazla bilgi için bkz. about_Preference_Variables.
Parametreler
-Append
Çıktıyı var olan bir dosyanın sonuna ekler.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Confirm
Cmdlet'i çalıştırmadan önce sizden onay ister.
Tür: | SwitchParameter |
Diğer adlar: | cf |
Position: | Named |
Default value: | False |
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 kodlar -
utf8NoBOM
: Bayt Sipariş İş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 (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 Ansi
kullanarak 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 Kodlamautf7
belirtirseniz bir uyarı yazılır.
Tür: | Encoding |
Kabul edilen değerler: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | 1 |
Default value: | UTF8NoBOM |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-FilePath
Çıkış dosyasının yolunu belirtir.
Tür: | String |
Diğer adlar: | Path |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Force
Salt okunur özniteliği geçersiz kılar ve var olan bir salt okunur dosyanın üzerine yazar. Force parametresi güvenlik kısıtlamalarını geçersiz kılmaz.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-InputObject
Dosyaya yazılacak nesneleri belirtir. Nesneleri içeren bir değişken girin veya nesneleri alan bir komut veya ifade yazın.
Tür: | PSObject |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | 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.
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 |
-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ı vermeden dosyanın üzerine yazar.
Tür: | SwitchParameter |
Diğer adlar: | NoOverwrite |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-WhatIf
Cmdlet çalıştırılıyorsa ne olacağını gösterir. Cmdlet çalıştırılmıyor.
Tür: | SwitchParameter |
Diğer adlar: | wi |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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. tüm çağrılarının ve yeniden yönlendirme işleçlerinin Out-File
(>
ve >>
) genişliğini denetlemek istiyorsanız, kullanmadan $PSDefaultParameterValues['Out-File:Width'] = 2000
önce ayarlayınOut-File
.
Tür: | Int32 |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
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 kullanabilirsiniz. Örneğin Get-Date | Format-List | Out-File out.txt
Cmdlet'ine bir PowerShell komutunun çıkışını Out-File
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.
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. 'a Out-File
geçirilen ANSI ile 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
PowerShell