Set-Content
Yeni içerik yazar veya bir dosyadaki mevcut içeriği değiştirir.
Sözdizimi
Set-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]
Set-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-NoNewline]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <string>]
[<CommonParameters>]
Set-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Set-Content
, yeni içerik yazan veya dosyadaki içeriğin yerini alan bir dize işleme cmdlet'idir.
Set-Content
var olan içeriğin yerini alır ve dosyaya içerik ekleyen Add-Content
cmdlet'inden farklıdır.
Set-Content
içerik göndermek için komut satırındaki Değer parametresini kullanabilir veya işlem hattı üzerinden içerik gönderebilirsiniz.
Aşağıdaki örnekler için dosya veya dizin oluşturmanız gerekiyorsa bkz. New-Item.
Örnekler
Örnek 1: Dizindeki birden çok dosyanın içeriğini değiştirme
Bu örnek, geçerli dizindeki birden çok dosyanın içeriğinin yerini alır.
Get-ChildItem -Path .\Test*.txt
Test1.txt
Test2.txt
Test3.txt
Set-Content -Path .\Test*.txt -Value 'Hello, World'
Get-Content -Path .\Test*.txt
Hello, World
Hello, World
Hello, World
Get-ChildItem
cmdlet'i, geçerli dizindeki ile başlayan .txt dosyaları listelemek için Test*
parametresini kullanır.
Set-Content
cmdlet'i, dosyalarını belirtmek için Test*.txt
parametresini kullanır.
Değeri parametresi, her dosyadaki mevcut içeriğin yerini alan Hello, World metin dizesini sağlar.
Get-Content
cmdlet'i, dosyalarını belirtmek için Test*.txt
parametresini kullanır ve her dosyanın içeriğini PowerShell konsolunda görüntüler.
Örnek 2: Yeni dosya oluşturma ve içerik yazma
Bu örnek yeni bir dosya oluşturur ve geçerli tarih ve saati dosyaya yazar.
Set-Content -Path .\DateTime.txt -Value (Get-Date)
Get-Content -Path .\DateTime.txt
1/30/2019 09:55:08
Set-Content
, geçerli dizinde DateTime.txt adlı yeni bir dosya oluşturmak için Yol ve Value parametrelerini kullanır.
Değeri parametresi, geçerli tarih ve saati almak için Get-Date
kullanır.
Set-Content
DateTime nesnesini dosyaya dize olarak yazar.
Get-Content
cmdlet'i, DateTime.txt içeriğini PowerShell konsolunda görüntülemek için Path parametresini kullanır.
Örnek 3: Dosyadaki metni değiştirme
Bu komut, var olan bir dosyadaki tüm sözcük örneklerinin yerini alır.
Get-Content -Path .\Notice.txt
Warning
Replace Warning with a new word.
The word Warning was replaced.
(Get-Content -Path .\Notice.txt) |
ForEach-Object {$_ -replace 'Warning', 'Caution'} |
Set-Content -Path .\Notice.txt
Get-Content -Path .\Notice.txt
Caution
Replace Caution with a new word.
The word Caution was replaced.
Get-Content
cmdlet'i geçerli dizindeki Notice.txt dosyasını belirtmek için Path parametresini kullanır.
Get-Content
komutu parantezlerle sarmalanır, böylece komut işlem hattına gönderilmeden önce tamamlanır.
Notice.txt dosyasının içeriği işlem hattına ForEach-Object
cmdlet'ine gönderilir.
ForEach-Object
otomatik değişken $_
kullanır ve Uyarı her oluşumunu Dikkatile değiştirir. Nesneler işlem hattına Set-Content
cmdlet'ine gönderilir.
Set-Content
Notice.txt dosyasını belirtmek için Path parametresini kullanır ve güncelleştirilmiş içeriği dosyaya yazar.
Son Get-Content
cmdlet'i PowerShell konsolunda güncelleştirilmiş dosya içeriğini görüntüler.
Örnek 4: filtreleri Set-Content ile kullanma
Set-Content
cmdlet'ine bir filtre belirtebilirsiniz.
Yolu parametresini niteleme amacıyla filtreler kullanırken, yolun içeriğini göstermek için sondaki yıldız işareti (*
) eklemeniz gerekir.
Aşağıdaki komut, *.txt
dizinindeki tüm C:\Temp
dosyalarının içeriğini Değeri boş olarak ayarlar.
Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"
Parametreler
-AsByteStream
Bu, FileSystem sağlayıcısı tarafından sağlanan dinamik bir parametredir. Daha fazla bilgi için bkz. about_FileSystem_Provider.
İçeriğin bayt akışı olarak yazılması gerektiğini belirtir. Bu parametre PowerShell 6.0'da kullanıma sunulmuştur.
Kodlama parametresiyle AsByteStream parametresini kullandığınızda bir uyarı oluşur. AsByteStream parametresi tüm kodlamaları yoksayar ve çıkış bayt akışı olarak yazılır.
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 |
-Credential
Not
Bu parametre, PowerShell ile yüklenen hiçbir sağlayıcı 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-Commandkullanın.
Tür: | PSCredential |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-Encoding
Bu, FileSystem sağlayıcısı tarafından sağlanan dinamik bir parametredir. Daha fazla bilgi için bkz. about_FileSystem_Provider.
Hedef dosya için kodlama türünü belirtir. Varsayılan değer utf8NoBOM
.
Kodlama, FileSystem sağlayıcısının Set-Content
eklediği dinamik bir parametredir. Bu parametre yalnızca dosya sistemi sürücülerinde çalışır.
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 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 1251
gibi) 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.
Not
UTF-7* artık kullanılması önerilmez. PowerShell 7.1'den itibaren, utf7
parametresi için belirtirseniz bir uyarı yazılır.
Tür: | Encoding |
Kabul edilen değerler: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | utf8NoBOM |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Exclude
Dize dizisi olarak, bu cmdlet'in işlemde hariç tutulduğu öğeyi veya öğeleri belirtir. Bu parametrenin değeri, Path parametresini niteler.
*.txt
gibi bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.
Exclude parametresi, yalnızca komut C:\Windows\*
gibi bir öğenin içeriğini içerdiğinde geçerlidir; burada joker karakter C:\Windows
dizininin içeriğini belirtir.
Tür: | String[] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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_Wildcardsbulabilirsiniz. Filtreler diğer parametrelerden daha verimlidir, çünkü sağlayıcı, nesneleri aldıktan sonra PowerShell'in filtrelemesini yapmak yerine cmdlet nesneleri aldığında bunları uygular.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | True |
-Force
Cmdlet'i, dosya salt okunur olsa bile dosyanın içeriğini ayarlamaya zorlar. Uygulama sağlayıcıdan sağlayıcıya değişir. Daha fazla bilgi için bkz. about_Providers. 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 |
-Include
Dize dizisi olarak, bu cmdlet'in işleme dahil olduğu öğeyi veya öğeleri belirtir. Bu parametrenin değeri, Path parametresini niteler.
"*.txt"
gibi bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.
Include parametresi, yalnızca komut C:\Windows\*
gibi bir öğenin içeriğini içerdiğinde ve joker karakteri C:\Windows
dizininin içeriğini belirttiğinde etkilidir.
Tür: | String[] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
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 |
-NoNewline
Bu, FileSystem sağlayıcısı tarafından sağlanan dinamik bir parametredir. Daha fazla bilgi için bkz. about_FileSystem_Provider.
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 |
-PassThru
İçeriği temsil eden bir nesne döndürür. Varsayılan olarak, bu cmdlet herhangi bir çıkış oluşturmaz.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Path
İçeriği alan öğenin yolunu belirtir. Joker karakterlere izin verilir.
Tür: | String[] |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | True |
-Stream
Bu, FileSystem sağlayıcısı tarafından sağlanan dinamik bir parametredir. Bu Parametre yalnızca Windows'da kullanılabilir. Daha fazla bilgi için bkz. about_FileSystem_Provider.
İçerik için alternatif bir veri akışı belirtir. Akış yoksa, bu cmdlet onu oluşturur. Joker karakterler desteklenmez.
Stream, FileSystem sağlayıcısının Set-Content
eklediği dinamik bir parametredir. Bu parametre yalnızca dosya sistemi sürücülerinde çalışır.
Set-Content
cmdlet'ini kullanarak Zone.Identifier
gibi herhangi bir alternatif veri akışının içeriğini oluşturabilir veya güncelleştirebilirsiniz. Ancak, İnternet'ten indirilen dosyaları engelleyen güvenlik denetimlerini ortadan kaldırmanın bir yolu olarak bunu önermeyiz. İndirilen bir dosyanın güvenli olduğunu doğrularsanız Unblock-File
cmdlet'ini kullanın.
Bu parametre PowerShell 3.0'da kullanıma sunulmuştur. PowerShell 7.2'den itibaren, Set-Content
hem dizinlerden hem de dosyalardan alternatif veri akışlarının içeriğini ayarlayabilir.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Value
Öğenin yeni içeriğini belirtir.
Tür: | Object[] |
Position: | 1 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-WhatIf
Cmdlet çalıştırılırsa ne olacağını gösterir. Cmdlet çalıştırılmaz.
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 |
Girişler
Öğenin yeni değerini içeren bir nesneyi bu cmdlet'e aktarabilirsiniz.
Çıkışlar
None
Varsayılan olarak, bu cmdlet çıkış döndürmez.
PassThru parametresini kullandığınızda, bu cmdlet içeriği temsil eden bir dize döndürür.
Notlar
-
Set-Content
, dize işleme için tasarlanmıştır. Dize olmayan nesneleriSet-Content
'e gönderirseniz, yazmadan önce nesneyi dizeye dönüştürür. Dosyalara nesne yazmak içinOut-File
kullanın. -
Set-Content
cmdlet'i herhangi bir sağlayıcı tarafından kullanıma sunulan verilerle çalışacak şekilde tasarlanmıştır. Oturumunuzda kullanılabilen sağlayıcıları listelemek içinGet-PSProvider
yazın. Daha fazla bilgi için bkz. about_Providers.