Set-Content

Menulis isi baru atau menggantikan isi yang ada dalam file.

Sintaks

Set-Content
   [-Path] <string[]>
   [-Value] <Object[]>
   [-PassThru]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [-NoNewline]
   [-Encoding <FileSystemCmdletProviderEncoding>]
   [-Stream <string>]
   [<CommonParameters>]
Set-Content
   [-Value] <Object[]>
   -LiteralPath <string[]>
   [-PassThru]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [-NoNewline]
   [-Encoding <FileSystemCmdletProviderEncoding>]
   [-Stream <string>]
   [<CommonParameters>]
Set-Content
   [-Path] <string[]>
   [-Value] <Object[]>
   [-PassThru]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]
Set-Content
   [-Value] <Object[]>
   -LiteralPath <string[]>
   [-PassThru]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]

Deskripsi

Set-Content adalah cmdlet pemrosesan string yang menulis konten baru atau mengganti konten dalam file. Set-Content menggantikan konten yang ada dan berbeda dari Add-Content cmdlet yang menambahkan konten ke file. Untuk mengirim konten ke Set-Content Anda dapat menggunakan parameter Nilai pada baris perintah atau mengirim konten melalui alur.

Jika Anda perlu membuat file atau direktori untuk contoh berikut, lihat Item Baru.

Contoh

Contoh 1: Ganti konten beberapa file dalam direktori

Contoh ini menggantikan konten untuk beberapa file di direktori saat ini.

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 menggunakan parameter Jalur untuk mencantumkan file .txt yang dimulai dengan Test* di direktori saat ini. Set-Content Cmdlet menggunakan parameter Jalur untuk menentukan Test*.txt file. Parameter Nilai menyediakan string teks Hello, World yang menggantikan konten yang ada di setiap file. Get-Content Cmdlet menggunakan parameter Jalur untuk menentukan Test*.txt file dan menampilkan konten setiap file di konsol PowerShell.

Contoh 2: Membuat file baru dan menulis konten

Contoh ini membuat file baru dan menulis tanggal dan waktu saat ini ke file.

Set-Content -Path .\DateTime.txt -Value (Get-Date)
Get-Content -Path .\DateTime.txt

1/30/2019 09:55:08

Set-Contentmenggunakan parameter Jalur dan Nilai untuk membuat file baru bernama DateTime.txt di direktori saat ini. Parameter Nilai menggunakan Get-Date untuk mendapatkan tanggal dan waktu saat ini. Set-Contentmenulis objek DateTime ke file sebagai string. Get-Content Cmdlet menggunakan parameter Jalur untuk menampilkan konten DateTime.txt di konsol PowerShell.

Contoh 3: Mengganti teks dalam file

Perintah ini menggantikan semua instans kata dalam file yang ada.

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 menggunakan parameter Jalur untuk menentukan file Notice.txt di direktori saat ini. Perintah Get-Content dibungkus dengan tanda kurung sehingga perintah selesai sebelum dikirimkan alur.

Konten file Notice.txt dikirimkan alur ke ForEach-Object cmdlet. ForEach-Object menggunakan variabel $_ otomatis dan mengganti setiap kemunculan Peringatan dengan Hati-hati. Objek dikirimkan alur ke Set-Content cmdlet. Set-Contentmenggunakan parameter Jalur untuk menentukan file Notice.txt dan menulis konten yang diperbarui ke file.

Cmdlet terakhir Get-Content menampilkan konten file yang diperbarui di konsol PowerShell.

Contoh 4: Menggunakan Filter dengan Set-Content

Anda dapat menentukan filter ke Set-Content cmdlet. Saat menggunakan filter untuk memenuhi syarat parameter Jalur , Anda perlu menyertakan tanda bintang berikutnya (*) untuk menunjukkan konten jalur.

Perintah berikut mengatur konten semua *.txt file dalam C:\Temp direktori ke Nilai kosong.

Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"

Parameter

-Confirm

Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Catatan

Parameter ini tidak didukung oleh penyedia apa pun yang diinstal dengan PowerShell. Untuk meniru pengguna lain, atau meningkatkan kredensial Anda saat menjalankan cmdlet ini, gunakan Invoke-Command.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Encoding

Ini adalah parameter dinamis yang disediakan oleh penyedia FileSystem . Untuk informasi selengkapnya, lihat about_FileSystem_Provider.

Menentukan jenis pengodean untuk file target. Nilai defaultnya adalah Default.

Pengodean adalah parameter dinamis yang ditambahkan penyedia FileSystem ke Set-Content. Parameter ini hanya berfungsi dalam drive sistem file.

Nilai yang dapat diterima untuk parameter ini adalah sebagai berikut:

  • Ascii Menggunakan set karakter ASCII (7-bit).
  • BigEndianUnicode Menggunakan UTF-16 dengan urutan byte big-endian.
  • BigEndianUTF32 Menggunakan UTF-32 dengan urutan byte big-endian.
  • Byte Mengodekan sekumpulan karakter ke dalam urutan byte.
  • Default Menggunakan pengodean yang sesuai dengan halaman kode aktif sistem (biasanya ANSI).
  • Oem Menggunakan pengodean yang sesuai dengan halaman kode OEM sistem saat ini.
  • String Sama seperti Unicode.
  • Unicode Menggunakan UTF-16 dengan urutan byte little-endian.
  • Unknown Sama seperti Unicode.
  • UTF7 Menggunakan UTF-7.
  • UTF8 Menggunakan UTF-8.
  • UTF32 Menggunakan UTF-32 dengan urutan byte little-endian.

Pengodean adalah parameter dinamis yang ditambahkan penyedia FileSystem ke Set-Content. Parameter ini hanya berfungsi dalam drive sistem file.

Type:FileSystemCmdletProviderEncoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Position:Named
Default value:Default
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

Menentukan, sebagai array string, item atau item yang dikecualikan cmdlet ini dalam operasi. Nilai parameter ini memenuhi syarat parameter Path . Masukkan elemen atau pola jalur, seperti *.txt. Karakter kartubebas diizinkan. Parameter Kecualikan hanya efektif ketika perintah menyertakan konten item, seperti C:\Windows\*, di mana karakter kartubebas C:\Windows menentukan konten direktori.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Filter

Menentukan filter untuk memenuhi syarat parameter Jalur . Penyedia FileSystem adalah satu-satunya penyedia PowerShell yang diinstal yang mendukung penggunaan filter. Anda dapat menemukan sintaks untuk bahasa filter FileSystem dalam about_Wildcards. Filter lebih efisien daripada parameter lain, karena penyedia menerapkannya ketika cmdlet mendapatkan objek daripada memfilter PowerShell objek setelah diambil.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Force

Memaksa cmdlet untuk mengatur konten file, bahkan jika file bersifat baca-saja. Implementasi bervariasi dari penyedia ke penyedia. Untuk informasi selengkapnya, lihat about_Providers. Parameter Force tidak mengambil alih pembatasan keamanan.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

Menentukan, sebagai array string, item atau item yang disertakan cmdlet ini dalam operasi. Nilai parameter ini memenuhi syarat parameter Path . Masukkan elemen atau pola jalur, seperti "*.txt". Karakter kartubebas diizinkan. Parameter Sertakan hanya efektif ketika perintah menyertakan konten item, seperti C:\Windows\*, di mana karakter kartubebas C:\Windows menentukan konten direktori.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

Menentukan jalur ke satu atau beberapa lokasi. Nilai LiteralPath digunakan persis seperti yang ditik. Tidak ada karakter yang ditafsirkan sebagai kartubebas. Jika jalur menyertakan karakter escape, sertakan dalam tanda kutip tunggal. Tanda kutip tunggal memberi tahu PowerShell untuk tidak menginterpretasikan karakter apa pun sebagai urutan escape.

Untuk informasi selengkapnya, lihat about_Quoting_Rules.

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoNewline

Ini adalah parameter dinamis yang disediakan oleh penyedia FileSystem . Untuk informasi selengkapnya, lihat about_FileSystem_Provider.

Representasi string dari objek input digabungkan untuk membentuk output. Tidak ada spasi atau baris baru yang dimasukkan di antara string output. Tidak ada baris baru yang ditambahkan setelah string output terakhir.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Mengembalikan objek yang mewakili konten. Secara default, cmdlet ini tidak menghasilkan output apa pun.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Menentukan jalur item yang menerima konten. Karakter kartubebas diizinkan.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Stream

Ini adalah parameter dinamis yang disediakan oleh penyedia FileSystem . Parameter ini hanya tersedia di Windows. Untuk informasi selengkapnya, lihat about_FileSystem_Provider.

Menentukan aliran data alternatif untuk konten. Jika aliran tidak ada, cmdlet ini akan membuatnya. Karakter kartubebas tidak didukung.

Stream adalah parameter dinamis yang ditambahkan penyedia FileSystem ke Set-Content. Parameter ini hanya berfungsi dalam drive sistem file.

Anda dapat menggunakan Set-Content cmdlet untuk membuat atau memperbarui konten aliran data alternatif apa pun, seperti Zone.Identifier. Namun, kami tidak merekomendasikan ini sebagai cara untuk menghilangkan pemeriksaan keamanan yang memblokir file yang diunduh dari Internet. Jika Anda memverifikasi bahwa file yang diunduh aman, gunakan Unblock-File cmdlet .

Parameter ini diperkenalkan di PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseTransaction

Menyertakan perintah dalam transaksi aktif. Parameter ini hanya valid ketika transaksi sedang berlangsung. Untuk informasi selengkapnya, lihat about_Transactions.

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Value

Menentukan isi baru untuk item tersebut.

Type:Object[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

Object

Anda dapat menyalurkan objek yang berisi nilai baru untuk item ke cmdlet ini.

Output

None

Secara default, cmdlet ini tidak mengembalikan output.

String

Saat Anda menggunakan parameter PassThru , cmdlet ini mengembalikan string yang mewakili konten.

Catatan

Windows PowerShell menyertakan alias berikut untuk Set-Content:

  • sc

  • Set-Content dirancang untuk pemrosesan string. Jika Anda menyalurkan objek non-string ke Set-Content, objek akan dikonversi menjadi string sebelum menulisnya. Untuk menulis objek ke file, gunakan Out-File.

  • Set-Content Cmdlet dirancang untuk bekerja dengan data yang diekspos oleh penyedia mana pun. Untuk mencantumkan penyedia yang tersedia di sesi Anda, ketik Get-PsProvider. Untuk informasi selengkapnya, lihat about_Providers.