Bagikan melalui


Set-Content

Menulis isi baru atau menggantikan isi yang ada dalam file.

Sintaks

Path (Default) - FileSystem provider

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>]

LiteralPath - FileSystem provider

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>]

Path (Default) - All providers

Set-Content
    [-Path] <string[]>
    [-Value] <Object[]>
    [-PassThru]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

LiteralPath - All providers

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 cmdlet Add-Content yang menambahkan konten ke file. Untuk mengirim konten ke Anda dapat menggunakan parameter Nilai pada baris perintah atau mengirim konten melalui alur.

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

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

Cmdlet menggunakan parameter Jalur untuk mencantumkan file .txt yang dimulai dengan di direktori saat ini. Cmdlet menggunakan parameter Jalur untuk menentukan file . Parameter Nilai menyediakan string teks Hello, World yang menggantikan konten yang ada di setiap file. Cmdlet menggunakan parameter Jalur untuk menentukan 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 Path dan Value untuk membuat file baru bernama DateTime.txt di direktori saat ini. Parameter Nilai menggunakan untuk mendapatkan tanggal dan waktu saat ini. menulis objek DateTime ke file sebagai string. 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.

Cmdlet menggunakan parameter Jalur untuk menentukan file Notice.txt di direktori saat ini. Perintah Get-Content dibungkus dengan tanda kurung sehingga perintah selesai sebelum dikirim ke alur.

Konten file Notice.txt dikirim ke alur ke cmdlet ForEach-Object. menggunakan variabel otomatis dan menggantikan setiap kemunculan Peringatan denganHati-hati . Objek dikirim ke alur ke cmdlet Set-Content. menggunakan parameter Jalur untuk menentukan file Notice.txt dan menulis konten yang diperbarui ke file.

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

Contoh 4: Menggunakan Filter dengan Set-Content

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

Perintah berikut mengatur konten semua file *.txt di direktori C:\Temp 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 Enkoding. Parameter AsByteStream mengabaikan pengodean apa pun dan output ditulis sebagai aliran byte.

Properti parameter

Jenis:SwitchParameter
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Confirm

Meminta konfirmasi sebelum menjalankan cmdlet.

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False
Alias:Cf

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Credential

Nota

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.

Properti parameter

Jenis:PSCredential
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa: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 pada drive sistem berkas.

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: Mengenkripsi dalam format UTF-16 menggunakan urutan byte big-endian.
  • bigendianutf32: Mengenkode dalam format UTF-32 menggunakan urutan byte big-endian.
  • oem: Menggunakan pengkodean default untuk program MS-DOS dan program konsol.
  • unicode: Mengode 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 ) atau nama string halaman kode terdaftar (seperti ). Untuk informasi selengkapnya, lihat dokumentasi .NET untuk Encoding.CodePage.

Dimulai dengan PowerShell 7.4, Anda dapat menggunakan nilai untuk parameter Pengodean untuk meneruskan ID numerik untuk halaman kode ANSI budaya saat ini tanpa harus menentukannya secara manual.

Nota

UTF-7* tidak lagi disarankan untuk digunakan. Sejak PowerShell 7.1, sebuah peringatan akan ditulis jika Anda menentukan utf7 untuk parameter Pengodean .

Properti parameter

Jenis:Encoding
Nilai default:utf8NoBOM
Nilai yang diterima:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Exclude

Menentukan item atau item-item yang tidak akan disertakan dalam operasi oleh cmdlet ini, dalam bentuk array string. Nilai parameter ini memenuhi syarat parameter Jalur. Masukkan elemen atau pola jalur, seperti *.txt. Karakter pengganti diizinkan. Parameter Exclude hanya efektif ketika perintah menyertakan konten suatu item, seperti C:\Windows\*, di mana karakter wildcard menentukan konten direktori C:\Windows.

Properti parameter

Jenis:

String[]

Nilai default:None
Mendukung wildcard:True
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Filter

Menentukan filter untuk mengkualifikasi 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 saat cmdlet mendapatkan objek, bukan PowerShell yang memfilternya setelah objek tersebut diambil.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:True
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Force

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

Properti parameter

Jenis:SwitchParameter
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Include

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

Properti parameter

Jenis:

String[]

Nilai default:None
Mendukung wildcard:True
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-LiteralPath

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

Untuk informasi lebih lanjut, lihat about_Quoting_Rules.

Properti parameter

Jenis:

String[]

Nilai default:None
Mendukung wildcard:False
DontShow:False
Alias:PSPath, LP

Kumpulan parameter

LiteralPath
Position:Named
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa: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.

Properti parameter

Jenis:SwitchParameter
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-PassThru

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

Properti parameter

Jenis:SwitchParameter
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Path

Menentukan jalur item yang menerima konten. Karakter pengganti diizinkan.

Properti parameter

Jenis:

String[]

Nilai default:None
Mendukung wildcard:True
DontShow:False

Kumpulan parameter

Path
Position:0
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False

-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 . Parameter ini hanya berfungsi pada drive sistem berkas.

Anda dapat menggunakan cmdlet Set-Content 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 cmdlet Unblock-File.

Parameter ini diperkenalkan di PowerShell 3.0. Pada PowerShell 7.2, Set-Content dapat mengatur konten aliran data alternatif dari direktori serta file.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Value

Menentukan isi baru untuk item tersebut.

Properti parameter

Jenis:

Object[]

Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

(All)
Position:1
Wajib:True
Nilai dari alur:True
Nilai dari alur berdasarkan nama properti:True
Nilai dari argumen yang tersisa:False

-WhatIf

Menunjukkan apa yang akan terjadi ketika cmdlet dijalankan. Cmdlet tidak dijalankan.

Properti parameter

Jenis:SwitchParameter
Nilai default:False
Mendukung wildcard:False
DontShow:False
Alias:wi

Kumpulan parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

CommonParameters

Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.

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

  • 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.
  • Cmdlet Set-Content dirancang untuk bekerja dengan data yang diekspos oleh penyedia mana pun. Untuk mencantumkan penyedia yang tersedia dalam sesi Anda, ketik Get-PSProvider. Untuk informasi selengkapnya, lihat tentang_Penyedia.