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]
[-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>]
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-Content
menggunakan 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-Content
menulis 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-Content
menggunakan 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
-AsByteStream
Ini adalah parameter dinamis yang disediakan oleh penyedia FileSystem . Untuk informasi selengkapnya, lihat about_FileSystem_Provider.
Menentukan bahwa konten harus ditulis sebagai aliran byte. Parameter ini diperkenalkan di PowerShell 6.0.
Peringatan terjadi saat Anda menggunakan parameter AsByteStream dengan parameter Pengodean . Parameter AsByteStream mengabaikan pengodean apa pun dan output ditulis sebagai aliran byte.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Confirm
Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.
Jenis: | SwitchParameter |
Alias: | cf |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | 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.
Jenis: | PSCredential |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | True |
Terima karakter wildcard: | 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 utf8NoBOM
.
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 pengodean untuk set karakter ASCII (7-bit).ansi
: Menggunakan pengodean untuk halaman kode ANSI budaya saat ini. Opsi ini ditambahkan di PowerShell 7.4.bigendianunicode
: Mengodekan dalam format UTF-16 menggunakan urutan byte big-endian.bigendianutf32
: Mengodekan dalam format UTF-32 menggunakan urutan byte big-endian.oem
: Menggunakan pengodean default untuk MS-DOS dan program konsol.unicode
: Mengodekan dalam format UTF-16 menggunakan urutan byte little-endian.utf7
: Mengodekan dalam format UTF-7.utf8
: Mengodekan dalam format UTF-8.utf8BOM
: Mengodekan dalam format UTF-8 dengan Byte Order Mark (BOM)utf8NoBOM
: Mengodekan dalam format UTF-8 tanpa Byte Order Mark (BOM)utf32
: Mengodekan dalam format UTF-32.
Dimulai dengan PowerShell 6.2, parameter Pengodean juga memungkinkan ID numerik halaman kode terdaftar (seperti -Encoding 1251
) atau nama string halaman kode terdaftar (seperti -Encoding "windows-1251"
). Untuk informasi selengkapnya, lihat dokumentasi .NET untuk Encoding.CodePage.
Dimulai dengan PowerShell 7.4, Anda dapat menggunakan Ansi
nilai untuk parameter Pengodean untuk meneruskan ID numerik untuk halaman kode ANSI budaya saat ini tanpa harus menentukannya secara manual.
Catatan
UTF-7* tidak lagi disarankan untuk digunakan. Pada PowerShell 7.1, peringatan ditulis jika Anda menentukan utf7
untuk parameter Pengodean .
Jenis: | Encoding |
Nilai yang diterima: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Nilai default: | utf8NoBOM |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | 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.
Jenis: | String[] |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | 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.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | 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.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | 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.
Jenis: | String[] |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | 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.
Jenis: | String[] |
Alias: | PSPath, LP |
Position: | Named |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | 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.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-PassThru
Mengembalikan objek yang mewakili konten. Secara default, cmdlet ini tidak menghasilkan output apa pun.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Path
Menentukan jalur item yang menerima konten. Karakter kartubebas diizinkan.
Jenis: | String[] |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | 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. Pada PowerShell 7.2, Set-Content
dapat mengatur konten aliran data alternatif dari direktori serta file.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Value
Menentukan isi baru untuk item tersebut.
Jenis: | Object[] |
Position: | 1 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-WhatIf
Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.
Jenis: | SwitchParameter |
Alias: | wi |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
Anda dapat menyalurkan objek yang berisi nilai baru untuk item ke cmdlet ini.
Output
None
Secara default, cmdlet ini tidak mengembalikan output.
Saat Anda menggunakan parameter PassThru , cmdlet ini mengembalikan string yang mewakili konten.
Catatan
Set-Content
dirancang untuk pemrosesan string. Jika Anda menyalurkan objek non-string keSet-Content
, objek akan dikonversi menjadi string sebelum menulisnya. Untuk menulis objek ke file, gunakanOut-File
.Set-Content
Cmdlet dirancang untuk bekerja dengan data yang diekspos oleh penyedia mana pun. Untuk mencantumkan penyedia yang tersedia di sesi Anda, ketikGet-PsProvider
. Untuk informasi selengkapnya, lihat about_Providers.