Aracılığıyla paylaş


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-Contenteklediğ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 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.

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. *.txtgibi 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-Contenteklediği dinamik bir parametredir. Bu parametre yalnızca dosya sistemi sürücülerinde çalışır.

Set-Content cmdlet'ini kullanarak Zone.Identifiergibi 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

Object

Öğenin yeni değerini içeren bir nesneyi bu cmdlet'e aktarabilirsiniz.

Çıkışlar

None

Varsayılan olarak, bu cmdlet çıkış döndürmez.

String

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 nesneleri Set-Content'e gönderirseniz, yazmadan önce nesneyi dizeye dönüştürür. Dosyalara nesne yazmak için Out-Filekullanı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çin Get-PSProvideryazın. Daha fazla bilgi için bkz. about_Providers.