Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Catatan editorial
Penting
Windows PowerShell Language Specification 3.0 diterbitkan pada Desember 2012 dan didasarkan pada Windows PowerShell 3.0. Spesifikasi ini tidak mencerminkan status PowerShell saat ini. Tidak ada rencana untuk memperbarui dokumentasi ini untuk mencerminkan status saat ini. Dokumentasi ini disajikan di sini untuk referensi historis.
Dokumen spesifikasi tersedia sebagai dokumen Microsoft Word dari Pusat Unduhan Microsoft di: https://www.microsoft.com/download/details.aspx?id=36389 Dokumen Word telah dikonversi untuk presentasi di sini di Microsoft Learn. Selama konversi, beberapa perubahan editorial telah dilakukan untuk mengakomodasi pemformatan untuk platform Dokumen. Beberapa kesalahan ketik dan kesalahan kecil telah dikoreksi.
Di PowerShell, setiap nilai memiliki jenis, dan jenis termasuk dalam salah satu dari dua kategori utama: jenis nilai dan jenis referensi . Pertimbangkan tipe int
, yang khas dari tipe nilai. Nilai jenis int
sepenuhnya mandiri; semua bit yang diperlukan untuk mewakili nilai tersebut disimpan dalam nilai tersebut, dan setiap pola bit dalam nilai tersebut mewakili nilai yang valid untuk jenisnya. Sekarang, pertimbangkan jenis array int[]
, yang merupakan ciri khas dari jenis referensi. Nilai dari jenis array yang disebut dapat menyimpan referensi ke objek yang benar-benar berisi elemen array, atau referensi null yang nilainya adalah $null
. Perbedaan penting antara dua kategori jenis paling baik ditunjukkan oleh perbedaan semantik mereka selama penugasan. Contohnya,
$i = 100 # $i designates an int value 100
$j = $i # $j designates an int value 100, which is a copy
$a = 10,20,30 # $a designates an object[], Length 3, value 10,20,30
$b = $a # $b designates exactly the same array as does $a, not a copy
$a[1] = 50 # element 1 (which has a value type) is changed from 20 to 50
$b[1] # $b refers to the same array as $a, so $b[1] is 50
Seperti yang kita lihat, penugasan nilai jenis referensi melibatkan salinandangkal ; yaitu, salinan referensi ke objek daripada nilai aktualnya. Sebaliknya, salinan mendalam memerlukan pembuatan salinan objek juga.
Jenis numerik adalah jenis yang memungkinkan representasi nilai bilangan bulat atau pecahan, dan yang mendukung operasi aritmatika pada nilai-nilai tersebut. Kumpulan jenis numerik mencakup bilangan bulat (§4,2,3) dan bilangan riil (jenis §4,2,4), tetapi tidak termasuk bool (§4.2.1) atau karakter (§4.2.2). Implementasi dapat menyediakan jenis numerik lainnya (seperti byte yang ditandatangani, bilangan bulat yang tidak ditandatangani, dan bilangan bulat dengan ukuran lain).
Kumpulan adalah grup dari satu atau beberapa item terkait, yang tidak perlu memiliki jenis yang sama.
Contoh jenis koleksi adalah array, tumpukan, antrean, daftar, dan tabel hash. Program dapat menghitung (atau melakukan iterasi) atas elemen dalam koleksi, mendapatkan akses ke setiap elemen satu per satu. Cara umum untuk melakukan ini adalah dengan pernyataan foreach
(§8.4.4) dan cmdlet ForEach-Object. Jenis objek yang mewakili enumerator dijelaskan dalam §4.5.16.
Dalam bab ini, ada tabel yang mencantumkan anggota yang dapat diakses untuk jenis tertentu. Untuk metode, Jenis ditulis dengan bentuk berikut: returnType/argumentTypeList. Jika daftar tipe argumen terlalu panjang untuk dipaskan di kolom tersebut, daftar tersebut diperlihatkan di kolom Tujuan sebagai gantinya.
Jenis bilangan bulat lainnya adalah SByte
, Int16
, UInt16
, UInt32
, dan UInt64
, semua di namespace Sistem .
Banyak kelas koleksi didefinisikan sebagai bagian dari System.Collections atau System.Collections.Generic namespace. Sebagian besar kelas koleksi mengimplementasikan antarmuka ICollection
, IComparer
, IEnumerable
, IList
, IDictionary
, dan IDictionaryEnumerator
dan setara generiknya.
Anda juga dapat menggunakan nama singkat untuk beberapa jenis. Untuk informasi selengkapnya, lihat tentang_Percepatan_Tipe.
4.1 Jenis khusus
4.1.1 Jenis kekosongan
Tipe ini tidak dapat diinstansiasi. Ini menyediakan sarana untuk membuang nilai secara eksplisit menggunakan operator cast (§7.2.9).
4.1.2 Jenis null
Jenis null memiliki satu instans, variabel otomatis $null (§2.3.2.2), juga dikenal sebagai nilai null. Nilai ini menyediakan sarana untuk mengekspresikan "ketidaksediaan" dalam konteks referensi. Karakteristik jenis ini tidak ditentukan.
4.1.3 Jenis objek
Setiap jenis di PowerShell kecuali jenis null (§4.1.2) diturunkan secara langsung atau tidak langsung dari objek jenis, sehingga objek adalah jenis dasar utama dari semua jenis non-null. Variabel yang dibatasi (§5,3) untuk mengetik objek benar-benar tidak dibatasi sama sekali, karena dapat berisi nilai dari jenis apa pun.
4.2 Jenis nilai
4.2.1 Boolean
Jenis Boolean adalah bool
. Hanya ada dua nilai dari jenis ini, False dan True, yang diwakili oleh variabel otomatis $false
dan $true
, masing-masing (§2.3.2.2).
Di PowerShell, bool
dipetakan menjadi System.Boolean
.
4.2.2 Karakter
Nilai karakter memiliki tipe char, yang dapat menyimpan titik kode Unicode 16-bit yang dienkode dalam format UTF-16.
Karakter jenis memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
NilaiMaksimum | Properti statis (hanya-bisa-dibaca) | karakter | Nilai terbesar yang mungkin dari jenis karakter |
Nilai Minimum | Properti statis (yang hanya bisa dibaca) | karakter | Nilai sekecil mungkin dari tipe char |
IsControl | Metode statis | bool/char | Menguji apakah karakter adalah karakter kontrol |
IsDigit | Metode statis | bool/char | Menguji apakah karakter adalah digit desimal |
IsLetter | Metode statis | bool/char | Menguji apakah karakter adalah huruf alfabet |
IsLetterOrDigit | Metode statis | bool/char | Menguji apakah karakter adalah digit desimal atau huruf alfabet |
IsLower | Metode statis | bool/char | Menguji apakah karakter adalah huruf kecil alfabet |
IsPunctuation | Metode statis | bool/char | Menguji apakah karakter adalah tanda baca |
IsUpper | Metode statis | bool/char | Menguji apakah karakter adalah huruf alfabet yang kapital |
IsWhiteSpace | Metode statis | bool/char | Menguji apakah karakter adalah karakter spasi putih. |
ToLower | Metode statis | karakter/string | Mengonversi karakter menjadi huruf kecil |
ToUpper | Metode statis | karakter/string | Mengonversi karakter menjadi huruf besar |
Windows PowerShell: char merujuk pada System.Char.
4.2.3 Bilangan Bulat
Ada dua jenis bilangan bulat yang ditandatangani, keduanya menggunakan representasi pelengkap dua untuk nilai negatif:
- Ketik
int
, yang menggunakan 32 bit sehingga memiliki rentang dari -2147483648 hingga +2147483647, inklusif. - Ketik
long
, yang menggunakan 64 bit yang memberinya rentang -9223372036854775808 hingga +9223372036854775807, inklusif.
Type int memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
NilaiMaksimum | Properti statis (hanya baca) | Integer | Nilai terbesar yang mungkin dari tipe int |
Nilai Minimum | Properti statis (baca-saja) | Integer | Nilai terkecil yang mungkin dari tipe data int |
Tipe long memiliki anggota yang dapat diakses berikut ini:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
NilaiMaksimum | Properti statis (hanya baca) | panjang | Nilai terbesar yang mungkin untuk tipe long |
Nilai Minimum | Properti statis (baca-saja) | panjang | Nilai terkecil yang mungkin dari tipe long |
Ada satu jenis bilangan bulat yang tidak ditandatangani:
- Ketik
byte
, yang menggunakan 8 bit sehingga memberikan kisaran dari 0 hingga 255.
Jenis byte
memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
NilaiMaksimum | Properti statis (baca-saja) | byte | Nilai terbesar yang mungkin dari tipe data byte |
Nilai Minimum | Properti statis (baca-saja) | byte | Nilai terkecil yang mungkin dari tipe byte |
Di PowerShell, byte
, int
, dan long
dipetakan ke System.Byte
, System.Int32
, dan System.Int64
, masing-masing.
4.2.4 Angka riil
4.2.4.1 float dan double
Ada dua jenis bilangan riil (atau bilangan mengambang):
- Jenis
float
menggunakan representasi presisi tunggal IEEE 32-bit. - Jenis
double
menggunakan representasi presisi ganda IEEE 64-bit.
Nama jenis ketiga, single
, adalah sinonim untuk jenis float
; float
digunakan di seluruh spesifikasi ini.
Meskipun ukuran dan representasi jenis float
dan double
ditentukan oleh spesifikasi ini, implementasi dapat menggunakan presisi yang diperluas untuk hasil menengah.
Tipe float memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
NilaiMaksimum | Properti statis (hanya dibaca) | mengapung | Nilai terbesar yang mungkin dari tipe float |
Nilai Minimum | Properti statis (baca-saja) | mengapung | Nilai terkecil yang mungkin dari tipe float |
NaN | Properti statis (baca-saja) | mengapung | Nilai konstanta Bukan Angka |
NegativeInfinity | Properti statis (baca-saja) | mengapung | Nilai konstanta negatif tak terhingga |
PositiveInfinity | Properti statis (baca-saja) | mengapung | Nilai konstanta tak terbatas positif |
Tipe double memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
NilaiMaksimum | Properti statis (baca-saja) | dua kali lipat | Nilai terbesar yang mungkin dari tipe double |
Nilai Minimum | Properti statis (hanya baca) | dua kali lipat | Nilai terkecil yang mungkin dari tipe double |
NaN | Properti statis (baca-saja) | dua kali lipat | Nilai konstanta Bukan Angka |
NegativeInfinity | Properti statis (hanya dapat dibaca) | dua kali lipat | Nilai konstanta negatif tak hingga |
PositiveInfinity | Properti statis (baca saja) | dua kali lipat | Nilai konstanta tak terbatas positif |
Di PowerShell, float
dan double
dipetakan ke System.Single
dan System.Double
, masing-masing.
4.2.4.2 desimal
Jenis desimal menggunakan representasi 128-bit. Minimal harus mendukung skala s sehingga 0 <= s<= setidaknya 28, dan rentang nilai dari -79228162514264337593543950335 hingga 79228162514264337593543950335. Representasi aktual desimal ditentukan oleh implementasi.
Jenis desimal memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
NilaiMaksimum | Properti statis (hanya baca) | desimal | Nilai terbesar yang mungkin dari tipe desimal |
Nilai Minimum | Properti statis (baca-saja) | desimal | Nilai sekecil mungkin dari jenis desimal |
Nota
Bilangan riil desimal memiliki karakteristik yang disebut skala, yang menunjukkan jumlah digit di sebelah kanan titik desimal. Misalnya, nilai 2,340 memiliki skala 3 di mana nol berikutnya signifikan. Ketika dua angka riil desimal ditambahkan atau dikurangi, skala hasilnya lebih besar dari dua skala. Misalnya, 1.0 + 2.000 adalah 3.000, sedangkan 5.0 - 2.00 adalah 3.00. Ketika dua angka riil desimal dikalikan, skala hasilnya adalah jumlah dari dua skala. Misalnya, 1,0 * 2.000 adalah 2.0000. Ketika dua angka desimal riil dibagi, skala hasilnya adalah skala dari angka pertama dikurangi skala dari angka kedua. Misalnya, 4.00000/2.000 adalah 2.00. Namun, skala tidak boleh kurang dari yang diperlukan untuk mempertahankan hasil yang benar. Misalnya, 3.000/2.000, 3.00/2.000, 3.0/2.000, dan 3/2 semuanya 1.5.
Di PowerShell, decimal
dipetakan menjadi System.Decimal
. Representasi desimal adalah sebagai berikut:
- Saat dianggap sebagai array dari empat nilai
int
, nilai tersebut berisi elemen-elemen berikut:- Indeks 0 (bit 0-31) berisi koefisien desimal dengan urutan rendah 32 bit.
- Indeks 1 (bit 32-63) berisi 32 bit tengah koefisien desimal.
- Indeks 2 (bit 64-95) berisi koefisien desimal dengan urutan tinggi 32 bit.
- Indeks 3 (bit 96-127) berisi bit tanda dan skala, sebagai berikut:
- bit 0--15 adalah nol
- bit 16-23 berisi skala sebagai nilai 0--28
- bit 24-30 adalah nol
- bit 31 adalah tanda (0 untuk positif, 1 untuk negatif)
4.2.5 Jenis sakelar
Jenis ini digunakan untuk membatasi jenis parameter dalam perintah (§8.10.5). Jika ada argumen yang memiliki nama parameter yang sesuai, maka parameter tersebut diuji untuk $true; jika tidak, pengujiannya adalah $false
.
Dalam PowerShell, switch
dipetakan ke System.Management.Automation.SwitchParameter
.
4.2.6 Jenis enumerasi
Jenis enumerasi adalah salah satu yang mendefinisikan sekumpulan konstanta bernama yang mewakili semua nilai yang mungkin yang dapat ditetapkan ke objek dari jenis enumerasi tersebut. Dalam beberapa kasus, kumpulan nilai sedemikian rupa sehingga hanya satu nilai yang dapat diwakili dalam satu waktu. Dalam kasus lain, kumpulan nilai adalah kekuatan berbeda dari dua, dan dengan menggunakan operator -bor (§7,8,5), beberapa nilai dapat dikodekan dalam objek yang sama.
Lingkungan PowerShell menyediakan sejumlah jenis enumerasi, seperti yang dijelaskan di bagian berikut.
4.2.6.1 jenis Action-Preference
Jenis yang ditentukan implementasi ini memiliki anggota yang dapat diakses yang saling bernilai eksklusif berikut:
Anggota | Jenis Anggota | Tujuan |
---|---|---|
Lanjutkan | Konstanta enumerasi | Runtime PowerShell akan terus memproses dan memberi tahu pengguna bahwa tindakan telah terjadi. |
Tanya | Konstanta enumerasi | Runtime PowerShell akan berhenti memproses dan bertanya kepada pengguna bagaimana prosesnya harus dilanjutkan. |
Lanjutkan Tanpa Suara | Nilai tetap enumerasi | Runtime PowerShell akan terus memproses tanpa memberi tahu pengguna bahwa telah terjadi tindakan. |
Berhenti | Konstanta enumerasi | Runtime PowerShell akan berhenti memproses saat tindakan terjadi. |
Di PowerShell, tipe ini adalah System.Management.Automation.ActionPreference
.
4.2.6.2 jenis Confirm-Impact
Jenis yang ditentukan implementasi ini memiliki anggota yang dapat diakses yang saling bernilai eksklusif berikut:
Anggota | Jenis Anggota | Tujuan |
---|---|---|
Tinggi | Konstanta enumerasi | Tindakan yang dilakukan memiliki risiko tinggi kehilangan data, seperti memformat ulang hard disk. |
Rendah | Konstanta enumerasi | Tindakan yang dilakukan memiliki risiko rendah kehilangan data. |
Menengah | Konstanta enumerasi | Tindakan yang dilakukan memiliki risiko kehilangan data tingkat sedang. |
Tidak | Konstanta enumerasi | Jangan mengonfirmasi tindakan apa pun (membatalkan semua permintaan untuk konfirmasi). |
Di PowerShell, tipe ini adalah System.Management.Automation.ConfirmImpact
.
4.2.6.3 jenis File-Attributes
Jenis yang ditentukan implementasi ini memiliki anggota yang dapat diakses berikut, yang dapat digabungkan:
Anggota | Jenis Anggota | Tujuan |
---|---|---|
Arsip | Konstanta enumerasi | Status pengarsipan file. Aplikasi menggunakan atribut ini untuk menandai file untuk pencadangan atau penghapusan. |
Dikompresi | Konstanta enumerasi | File dikompresi. |
Perangkat | Disiapkan untuk penggunaan masa mendatang. | |
Direktori | Konstanta enumerasi | Berkas adalah direktori. |
Dienkripsi | Konstanta enumerasi | File atau direktori dienkripsi. Untuk file, ini berarti bahwa semua data dalam file dienkripsi. Untuk direktori, ini berarti bahwa enkripsi adalah default untuk file dan direktori yang baru dibuat. |
Tersembunyi | Konstanta enumerasi | File disembunyikan, dan dengan demikian tidak disertakan dalam daftar direktori biasa. |
Biasa | Konstanta enumerasi | File normal dan tidak memiliki atribut lain yang ditetapkan. Atribut ini hanya valid jika digunakan sendiri. |
TidakDiindeksKandungan | Konstanta enumerasi | File tidak akan diindeks oleh layanan pengindeksan konten sistem operasi. |
Luar Jaringan | Konstanta enumerasi | File sedang offline. Data dari file tersebut tidak segera tersedia. |
HanyaBaca | Konstanta enumerasi | File bersifat baca-saja. |
ReparsePoint | Konstanta enumerasi | File berisi titik analisis ulang, yang merupakan blok data yang ditentukan pengguna yang terkait dengan file atau direktori. |
SparseFile | Konstanta enumerasi | File adalah file jarang. File jarang biasanya merupakan file besar yang datanya sebagian besar nol. |
Sistem | Konstanta enumerasi | File ini adalah file sistem. File adalah bagian dari sistem operasi atau digunakan secara eksklusif oleh sistem operasi. |
Sementara | Konstanta enumerasi | File bersifat sementara. Sistem file mencoba menyimpan semua data dalam memori untuk akses yang lebih cepat daripada menghapus data kembali ke penyimpanan massal. File sementara harus dihapus oleh aplikasi segera setelah tidak lagi diperlukan. |
Di PowerShell, jenis ini adalah System.IO.FileAttributes dengan atribut FlagsAttribute.
4.2.6.4 JenisExpression-Option reguler
Jenis yang ditentukan implementasi ini memiliki anggota yang dapat diakses berikut, yang dapat digabungkan:
Anggota | Jenis Anggota | Tujuan |
---|---|---|
Abaikan Kasus | Konstanta enumerasi | Menentukan bahwa pencocokan tidak membedakan huruf besar/kecil. |
Tidak | Konstanta enumerasi | Menetapkan bahwa tidak ada opsi yang ditetapkan. |
Implementasi dapat memberikan nilai lain.
Di PowerShell, jenis ini System.Text.RegularExpressions.RegexOptions
dengan atribut FlagsAttribute
. Nilai tambahan berikut didefinisikan: Compiled
, CultureInvariant
, ECMAScript
, ExplicitCapture
, IgnorePatternWhitespace
, Multiline
, RightToLeft
, Singleline
.
4.3 Jenis referensi
4.3.1 String
Nilai string memiliki jenis string dan merupakan urutan yang tidak dapat diubah dari nol atau lebih karakter dari jenis char, yang masing-masing berisi titik kode Unicode 16-bit yang dikodekan UTF-16.
Jenis string memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Panjang | Properti Instans | int (baca-saja) | Mendapatkan jumlah karakter dalam string |
ToLower | Metode Instans | benang | Membuat string baru yang berisi huruf kecil yang setara |
ToUpper | Metode Instans | benang | Membuat string baru yang berisi setara dalam huruf besar |
Di PowerShell, string
memetakan ke System.String
.
4.3.2 Array
Semua jenis array berasal dari jenis array
. Jenis ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Panjang | Properti Instans (baca-saja) | Integer | Jumlah elemen dalam array |
Pangkat | Properti Instans (baca-saja) | Integer | Jumlah dimensi dalam array |
Menyalin | Metode Statis | batal/lihat kolom tujuan | Menyalin berbagai elemen dari satu array ke array lainnya. Ada empat versi, di mana sumber adalah array sumber, tujuan adalah array tujuan, jumlah adalah jumlah elemen yang akan disalin, dan sourceIndex dan destinationIndex adalah lokasi awal dalam array masing-masing. Salin(sumber, tujuan, int hitungan) |
GetLength | Metode Instans (baca-saja) | int/none | Jumlah elemen dalam dimensi tertentu GetLength(intdimensi) |
Untuk detail selengkapnya tentang array, lihat §9.
Di PowerShell, array
dipetakan menjadi System.Array
.
4.3.3 Hashtables
Jenis Hashtable memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Jumlah | Properti Instans | Integer | Mendapatkan jumlah pasangan kunci/nilai dalam Hashtable |
Tombol / Kunci | Properti Instans | Definisi tergantung implementasi | Mendapatkan koleksi semua kunci |
Nilai | Properti Instans | Ditentukan oleh implementasi | Mendapatkan kumpulan semua nilai |
Hapus | Metode Instans | kosong/tidak ada | Menghapus kunci/nilai yang ditunjuk |
Untuk detail selengkapnya tentang Hashtable, lihat §10.
Di PowerShell, Hashtable
dipetakan ke System.Collections.Hashtable
.
Hashtable
elemen disimpan dalam objek jenis DictionaryEntry
, dan koleksi yang dikembalikan oleh Kunci dan Nilai memiliki jenis ICollection
.
4.3.4 Jenis xml
Tipe XML mengimplementasikan W3C Document Object Model (DOM) Level 1 Core dan Core DOM Level 2. DOM adalah representasi pohon dalam memori (cache) dari dokumen XML dan memungkinkan navigasi dan pengeditan dokumen ini. Jenis ini mendukung operator subskrip [] (§7.1.4.4).
Di PowerShell, xml
berkorespondensi dengan System.Xml.XmlDocument
.
4.3.5 Jenis regex
Jenis regex
menyediakan mesin untuk mendukung pemrosesan ekspresi reguler. Ini digunakan untuk membatasi jenis parameter (§5,3) yang argumen yang sesuai mungkin berisi ekspresi reguler.
Dalam PowerShell, regex
dipetakan menjadi System.Text.RegularExpressions.Regex
.
4.3.6 Jenis ref
Biasanya, argumen diteruskan ke perintah menurut nilai. Dalam kasus argumen yang memiliki tipe nilai, salinan dari nilai tersebut diteruskan. Dalam kasus argumen yang memiliki jenis referensi tertentu, salinan referensi diteruskan.
Type ref menyediakan mekanisme yang memungkinkan argumen diteruskan ke perintah melalui referensi, sehingga perintah dapat mengubah nilai argumen. Type ref memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Nilai | Properti instans (dapat dibaca dan ditulis) | Jenis nilai yang dirujuk. | Mendapatkan/mengatur nilai yang sedang dirujuk. |
Pertimbangkan definisi fungsi dan panggilan berikut:
function Doubler {
param ([ref]$x) # parameter received by reference
$x.Value *= 2.0 # note that 2.0 has type double
}
$number = 8 # designates a value of type int, value 8
Doubler([ref]$number) # argument received by reference
$number # designates a value of type double, value 8.0
Pertimbangkan kasus di mana $number diberi batasan jenis:
[int]$number = 8 # designates a value of type int, value 8
Doubler([ref]$number) # argument received by reference
$number # designates a value of type int, value 8
Seperti yang ditunjukkan, argumen dan parameter yang sesuai harus dideklarasikan ref
.
Dalam PowerShell, ref
terkait dengan System.Management.Automation.PSReference
.
4.3.7 Jenis blokir skrip
Ketik scriptblock
mewakili blok teks skrip yang telah dikommpilasikan sebelumnya (§7.1.8) yang dapat digunakan sebagai satu unit. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Atributs | Properti instans (baca-saja) | Kumpulan atribut | Mendapatkan atribut blok skrip. |
Arsip | Properti instans (baca-saja) | benang | Mendapatkan nama file tempat blok skrip ditentukan. |
Modul | Properti instans (baca-saja) | implementasi yang ditentukan ([§4.5.12][§4.5.12]) | Mendapatkan informasi tentang modul tempat blok skrip ditentukan. |
GetNewClosure | Metode instance | blok skrip /tidak |
Mengambil blok skrip yang terikat ke modul. Setiap variabel lokal yang berada dalam konteks pemanggil akan disalin ke dalam modul. |
Memohon | Metode instans | Kumpulan objek/objek[] | Memanggil blok skrip dengan argumen yang ditentukan dan mengembalikan hasilnya. |
InvokeReturnAsIs | Metode instans | objek/objek[] | Memanggil blok skrip dengan argumen yang ditentukan dan mengembalikan objek apa pun yang dihasilkan. |
Buat | Metode statis | blok skrip /tali |
Membuat objek blok skrip baru yang berisi skrip yang ditentukan. |
Di PowerShell, scriptblock
berkaitan dengan System.Management.Automation.ScriptBlock
.
Invoke
mengembalikan koleksi PSObject
.
4.3.8 Jenis matematika
Jenis math
menyediakan akses ke beberapa konstanta dan metode yang berguna dalam komputasi matematika. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
E | Properti statis (hanya baca) | dua kali lipat | Basis logaritma alami |
PI | Properti statis (baca-saja) | dua kali lipat | Rasio keliling lingkaran terhadap diameternya |
Abs | Metode statis | numerik/numerik | Nilai absolut (jenis pengembalian sama dengan jenis argumen yang diteruskan) |
Acos | Metode statis | ganda / ganda | Sudut yang kosinusnya adalah angka yang ditentukan |
Asin | Metode statis | ganda / ganda | Sudut yang sinusnya adalah angka yang ditentukan |
Atan | Metode statis | ganda / ganda | Sudut yang tangennya adalah angka yang ditentukan |
Atan2 | Metode statis | double / double y, double x | Sudut yang tangennya adalah hasil bagi dari dua bilangan yang ditentukan, yaitu x dan y |
Plafon | Metode statis | desimal/desimal ganda / ganda |
bilangan bulat terkecil lebih besar dari atau sama dengan angka yang ditentukan |
Cos | Metode statis | ganda / ganda | Kosinus dari sudut yang ditentukan |
Cosh | Metode statis | ganda / ganda | Kosinus hiperbolik dari sudut yang ditentukan |
Kadaluarsa | Metode statis | ganda / ganda | e dinaikkan ke daya yang ditentukan |
Lantai | Metode statis | desimal/desimal ganda / ganda |
Bilangan bulat terbesar kurang dari atau sama dengan angka yang ditentukan |
Catatan | Metode statis | ganda / ganda angka ganda / gandaangka, ganda dasar |
Logaritma angka menggunakan basis e atau basis atau basis |
Log10 | Metode statis | ganda / ganda | Logaritma base-10 dari angka tertentu |
Maks | Metode statis | numerik/numerik | Lebih besar dari dua angka yang ditentukan (jenis pengembalian sama dengan jenis argumen yang diteruskan) |
Menit | Metode statis | numerik/numerik, numerik | Lebih kecil dari dua angka yang ditentukan (jenis pengembalian sama dengan jenis argumen yang diteruskan) |
Bugh | Metode statis | ganda / ganda x, ganda y | Angka yang ditentukan x dipangkatkan ke daya yang ditentukan y |
Dosa | Metode statis | ganda / ganda | Sinus sudut yang ditentukan |
Sinh | Metode statis | ganda / ganda | Sinus hiperbolik dari sudut yang ditentukan |
Sqrt | Metode statis | ganda / ganda | Akar kuadrat dari angka tertentu |
Tan | Metode statis | ganda / ganda | Tangen dari sudut yang telah ditentukan |
Tanh | Metode statis | ganda / ganda | Tangen hiperbolik dari sudut yang ditentukan |
di PowerShell, Math
diarahkan ke System.Math
.
4.3.9 Jenis yang dipesan
Jenis ordered
adalah jenis pseudo yang hanya digunakan untuk konversi.
4.3.10 Jenis pscustomobject
Jenis pscustomobject
adalah jenis pseudo yang hanya digunakan untuk konversi.
4.4 Jenis generik
Sejumlah bahasa dan lingkungan pemrograman menyediakan tipe yang dapat dispesialisasikan. Banyak dari jenis ini disebut sebagai jenis kontainer, karena instansnya dapat berisi objek dari beberapa jenis lainnya. Pertimbangkan tipe yang disebut Tumpukan yang dapat mewakili tumpukan nilai, yang dapat ditambahkan dan dikeluarkan. Biasanya, pengguna tumpukan hanya ingin menyimpan satu jenis objek di tumpukan tersebut. Namun, jika bahasa atau lingkungan tidak mendukung spesialisasi jenis, beberapa varian berbeda dari jenis Stack harus diimplementasikan meskipun semuanya melakukan tugas yang sama, hanya dengan elemen jenis yang berbeda.
Spesialisasi jenis memungkinkan jenis generik diimplementasikan sed sehingga dapat dibatasi untuk menangani beberapa subset jenis saat digunakan. Contohnya,
- Jenis tumpukan generik yang dikhususkan untuk menahan string mungkin ditulis sebagai
Stack[string]
. - Jenis kamus generik yang dikhususkan untuk menahan kunci int dengan nilai string terkait mungkin ditulis sebagai
Dictionary[int,string]
. - Tumpukan tumpukan string mungkin ditulis sebagai
Stack[Stack[string]]
.
Meskipun PowerShell tidak menentukan jenis generik bawaan apa pun, PowerShell dapat menggunakan jenis tersebut jika disediakan oleh lingkungan host. Lihat sintaks dalam §7.1.10.
Nama lengkap untuk jenis Stack[string]
yang disarankan di atas adalah System.Collections.Generic.Stack[string]
. Nama lengkap untuk jenis Dictionary[int,string]
yang disarankan di atas adalah System.Collections.Generic.Dictionary[int,string]
.
4.5 Jenis anonim
Dalam beberapa keadaan, implementasi PowerShell membuat objek dari beberapa jenis, dan objek tersebut memiliki anggota yang dapat diakses oleh skrip. Namun, nama sebenarnya dari jenis tersebut tidak perlu ditentukan, asalkan anggota yang dapat diakses telah ditentukan secara memadai untuk digunakan. Artinya, skrip dapat menyimpan objek dari jenis tersebut dan mengakses anggota mereka tanpa benar-benar mengetahui nama jenis tersebut. Subbagian berikut menguraikan jenis-jenis ini.
4.5.1 Jenis deskripsi penyedia
Jenis ini merangkum status penyedia. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Penggerak | Properti instans (baca-saja) | Implementasi yang ditentukan (§4.5.2) | Kumpulan objek deskripsi perangkat penyimpanan |
Nama | Properti instans (baca-saja) | benang | Nama penyedia |
Dalam PowerShell, jenis ini System.Management.Automation.ProviderInfo
.
4.5.2 Jenis deskripsi drive
Jenis ini merangkum status drive. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
LokasiSaatIni | Properti instansi (baca-tulis) | benang | Lokasi kerja saat ini dari drive (§3.1.4) |
Deskripsi | Properti instans (baca-tulis) | benang | Deskripsi drive |
Nama | Properti instans (baca-saja) | benang | Nama dari drive |
Akar | Properti instans (baca-saja) | benang | Nama dari drive |
Di PowerShell, tipe ini adalah System.Management.Automation.PSDriveInfo
.
4.5.3 Jenis deskripsi variabel
Jenis ini merangkum status variabel. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Atributs | Properti instans (baca-saja) | Implementasi yang didefinisikan | Kumpulan atribut |
Deskripsi | Properti instans (baca-tulis) | benang | Deskripsi yang diatur pada variabel melalui cmdlet New-Variable atau Set-Variable. |
Modul | Properti instans (baca-saja) | Implementasi yang ditentukan (§4.5.12) | Modul tempat variabel ini diekspor |
ModuleName | Properti instans (baca-saja) | benang | Modul tempat variabel ini ditentukan |
Nama | Properti instans (baca-saja) | benang | Nama yang ditetapkan ke variabel saat dibuat dalam bahasa PowerShell atau melalui cmdlet New-Variable dan Set-Variable . |
Opsi | Properti instans (baca-tulis) | benang | Opsi yang ditetapkan ke variabel melalui cmdlet New-Variable dan Set-Variable . |
Nilai | Properti instans (baca-tulis) | objek | Nilai yang ditetapkan ke variabel saat ditetapkan dalam bahasa PowerShell atau melalui cmdlet New-Variable dan Set-Variable . |
Dalam PowerShell, jenis ini adalah System.Management.Automation.PSVariable
.
Windows PowerShell: Jenis koleksi atribut adalah System.Management.Automation.PSVariableAttributeCollection.
4.5.4 Jenis deskripsi alias
Jenis ini merangkum status alias. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
CommandType | Properti instans (baca-saja) | Implementasi yang ditentukan | Harus dibandingkan setara dengan "Alias". |
Definisi | Properti instans (baca-saja) | benang | Alias atau perintah yang ditugaskan pada alias tersebut melalui cmdlet New-Alias atau Set-Alias. |
Deskripsi | Properti instans (baca-tulis) | benang | Deskripsi yang ditetapkan ke alias melalui cmdlet New-Alias atau Set-Alias . |
Modul | Properti instans (baca-saja) | Implementasi yang ditentukan (§4.5.12) | Modul tempat alias ini diekspor |
ModuleName | Properti instans (baca-saja) | benang | Modul tempat alias ini didefinisikan |
Nama | Properti instans (baca-saja) | benang | Nama yang ditetapkan ke alias saat dibuat melalui perintah cmdlet New-Alias atau Set-Alias . |
Opsi | Properti instans (dapat dibaca dan ditulis) | benang | Opsi yang ditetapkan ke alias melalui cmdlet New-Alias New-Alias atau Set-Alias . |
Tipe Keluaran | Properti instans (baca-saja) | Koleksi yang didefinisikan oleh implementasi | Menentukan jenis nilai yang dihasilkan oleh perintah yang dirujuk oleh alias. |
Parameter-parameternya | Properti instans (baca-saja) | Koleksi yang ditentukan oleh implementasi | Parameter perintah. |
ParameterSets | Properti instans (baca-saja) | Koleksi yang didefinisikan oleh implementasi | Informasi tentang kumpulan parameter yang terkait dengan perintah. |
Perintah yang Direferensikan | Properti instans (baca-saja) | Implementasi yang ditentukan | Informasi tentang perintah yang langsung dikaitkan dengan alias ini. |
PerintahTerselesaikan | Properti instans (baca-saja) | Implementasi yang didefinisikan | Informasi tentang perintah yang menjadi tujuan dari alias tersebut. |
Dalam PowerShell, tipe ini adalah System.Management.Automation.AliasInfo
.
4.5.5 Jenis deskripsi lokasi kerja
Jenis ini merangkum status lokasi kerja. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Pengemudi | Properti instans (baca-saja) | Implementasi yang ditentukan (§4.5.2) | Objek deskripsi penggerak |
Jalur | Properti instans (baca-saja) | benang | Lokasi kerja |
Penyedia | Properti instans (baca-saja) | Implementasi yang ditentukan (§4.5.1) | Penyedia |
ProviderPath | Properti instans (baca-saja) | benang | Jalur penyedia saat ini |
Tumpukan lokasi kerja adalah kumpulan objek lokasi kerja, seperti yang dijelaskan di atas.
Di PowerShell, lokasi kerja saat ini diwakili oleh objek jenis System.Management.Automation.PathInfo
. Tumpukan lokasi kerja diwakili oleh objek jenis System.Management.Automation.PathInfoStack
, yang merupakan kumpulan objek PathInfo
.
4.5.6 Jenis deskripsi variabel lingkungan
Jenis ini merangkum status variabel lingkungan. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Nama | Properti instans (baca-tulis) | benang | Nama variabel lingkungan |
Nilai | Properti instans (baca-tulis) | benang | Nilai variabel lingkungan |
Di PowerShell, jenis ini System.Collections.DictionaryEntry
. Nama dari variabel tersebut adalah kunci dalam kamus. Nilai dari variabel lingkungan itu merupakan nilai dari sebuah objek kamus.
Name adalah AliasProperty
yang sama dengan Key.
4.5.7 Jenis deskripsi aplikasi
Jenis ini merangkum status aplikasi. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
JenisPerintah | Properti instans (baca-saja) | Implementasi yang ditentukan | Harus menghasilkan kesetaraan dengan "Aplikasi". |
Definisi | Properti instans (baca-saja) | benang | Deskripsi aplikasi. |
Ekstensi | Properti instans (baca-tulis) | benang | Ekstensi file aplikasi. |
Modul | Properti instans (baca-saja) | Implementasi yang ditentukan (§4.5.12) | Modul yang mendefinisikan perintah ini. |
ModuleName | Properti instans (baca-saja) | benang | Nama modul yang menentukan perintah. |
Nama | Properti instans (baca-saja) | benang | Nama perintah. |
Tipe Keluaran | Properti instans (baca-saja) | Koleksi yang terdefinisi oleh implementasi | Menentukan jenis output nilai menurut perintah. |
Parameter-parameternya | Properti instans (baca-saja) | Koleksi yang ditentukan oleh implementasi | Parameter perintah. |
ParameterSets | Properti instans (baca-saja) | Koleksi yang ditentukan oleh implementasi | Informasi tentang set parameter perintah yang terkait. |
Jalur | Properti instans (baca-saja) | benang | Mendapatkan lokasi file aplikasi. |
Dalam PowerShell, tipe ini adalah System.Management.Automation.ApplicationInfo
.
Jenis deskripsi Cmdlet 4.5.8
Tipe ini merangkum status cmdlet. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Tipe Perintah | Properti instans (baca-saja) | Implementasi yang ditentukan | Harus dibandingkan sama dengan "Cmdlet". |
DefaultParameterSet | Properti instans (baca-saja) | Implementasi yang ditentukan | Set parameter default yang digunakan jika PowerShell tidak dapat menentukan set parameter mana yang digunakan berdasarkan argumen yang disediakan. |
Definisi | Properti instans (baca-saja) | benang | Deskripsi dari cmdlet. |
HelpFile | Properti instans (baca-tulis) | benang | Jalur ke file Bantuan untuk cmdlet. |
TipeImplementasi | Properti objek (baca-tulis) | Implementasi yang sudah ditentukan | Jenis yang mengimplementasikan cmdlet. |
Modul | Properti instans (baca-saja) | Implementasi yang ditentukan (§4.5.12) | Modul yang mendefinisikan cmdlet ini. |
ModuleName | Properti instans (baca-saja) | benang | Nama modul yang menentukan cmdlet. |
Nama | Properti instans (baca-saja) | benang | Nama dari cmdlet. |
Kata benda | Properti instans (baca-saja) | benang | Nama benda dari cmdlet. |
Tipe Keluaran | Properti instans (baca-saja) | Koleksi yang ditentukan implementasi | Menentukan tipe nilai yang dihasilkan oleh cmdlet. |
Parameter-parameternya | Properti instans (baca-saja) | Koleksi yang ditentukan oleh implementasi | Parameter-parameter dari cmdlet. |
ParameterSets | Properti instans (baca-saja) | Koleksi yang ditentukan oleh implementasi | Informasi tentang kumpulan parameter yang terkait dengan cmdlet. |
Kata kerja | Properti instans (baca-saja) | benang | Nama kata kerja cmdlet (perintah singkat). |
PSSnapIn | Properti instans (baca-saja) | Implementasi yang ditentukan | Windows PowerShell: Informasi tentang snap-in Windows PowerShell yang digunakan untuk mendaftarkan cmdlet. |
Dalam PowerShell, jenis ini adalah System.Management.Automation.CmdletInfo
.
4.5.9 Jenis deskripsi skrip eksternal
Jenis ini merangkum status skrip eksternal (yang dapat dieksekusi langsung oleh PowerShell, tetapi bukan bawaan). Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
CommandType | Properti instans (baca-saja) | Implementasi yang ditentukan | Harus sama dengan "ExternalScript" saat dibandingkan. |
Definisi | Properti instans (baca-saja) | benang | Sebuah definisi dari skrip. |
Modul | Properti instans (baca-saja) | Implementasi yang ditentukan (§4.5.12) | Modul yang mendefinisikan skrip ini. |
ModuleName | Properti instans (baca-saja) | benang | Nama modul yang menentukan skrip. |
Nama | Properti instans (baca-saja) | benang | Nama skrip ini. |
OriginalEncoding | Properti instans (baca-saja) | Implementasi yang ditentukan | Pengodean asli yang digunakan untuk mengonversi karakter skrip menjadi byte. |
Tipe Keluaran | Properti contoh (baca-saja) | Koleksi yang didefinisikan oleh implementasi | Menentukan jenis nilai yang dihasilkan oleh skrip. |
Parameter-parameternya | Properti instans (baca-saja) | Koleksi yang didefinisikan oleh implementasi | Parameter dari skrip. |
ParameterSets | Properti instans (baca-saja) | Koleksi yang ditentukan oleh implementasi | Informasi tentang kumpulan parameter yang terkait dengan skrip. |
Jalur | Properti instans (baca-saja) | benang | Jalur ke file skrip. |
ScriptBlock | Properti instans (baca-saja) | blok skrip | Skrip eksternal. |
ScriptContents | Properti instans (baca-saja) | benang | Isi asli naskah. |
Dalam PowerShell, tipe ini adalah System.Management.Automation.ExternalScriptInfo
.
4.5.10 Jenis deskripsi fungsi
Jenis ini merangkum status fungsi. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
CmdletBinding | Properti instans (baca-saja) | bool | Menunjukkan apakah fungsi menggunakan pengikatan parameter yang sama dengan yang digunakan cmdlet yang dikompilasi (lihat §12.3.5). |
CommandType | Properti instans (baca-saja) | Implementasi yang didefinisikan | Bisa dibandingkan untuk kesetaraan dengan "Fungsi" atau "Filter" untuk menentukan apakah objek ini mewakili salah satu dari kedua objek tersebut. |
DefaultParameterSet | Properti instans (baca-saja) | benang | Menentukan parameter yang diatur untuk digunakan jika tidak dapat ditentukan dari argumen (lihat §12.3.5). |
Definisi | Properti instans (baca-saja) | benang | Versi string dari ScriptBlock |
Deskripsi | Properti instans (baca-tulis) | benang | Deskripsi fungsi. |
Modul | Properti instans (baca-saja) | Implementasi yang ditentukan (§4.5.12) | Modul tempat fungsi ini diekspor |
ModuleName | Properti instans (baca-saja) | benang | Modul tempat fungsi ini ditentukan |
Nama | Properti instans (baca-saja) | benang | Nama fungsi |
Opsi | Properti instans (baca-tulis) | Implementasi yang didefinisikan | Opsi cakupan untuk fungsi (§3.5.4). |
Tipe Keluaran | Properti instans (baca-saja) | Koleksi yang ditetapkan oleh implementasi | Menentukan jenis output nilai, secara berurutan (lihat §12.3.6). |
Parameter-parameternya | Properti instans (baca-saja) | Koleksi yang didefinisikan oleh implementasi | Menentukan nama parameter, secara berurutan. Jika fungsi bertindak seperti cmdlet (lihat CmdletBinding di atas) parameter umum disertakan di akhir koleksi. |
ParameterSets | Properti instance (hanya dapat dibaca) | Koleksi yang didefinisikan oleh implementasi | Informasi tentang set parameter yang terkait dengan perintah. Untuk setiap parameter, hasilnya menunjukkan nama dan jenis parameter, dan menunjukkan apakah parameter wajib, berdasarkan posisi atau parameter pengalihan. Jika fungsi bertindak seperti cmdlet (lihat CmdletBinding di atas) parameter umum disertakan di akhir koleksi. |
ScriptBlock | Properti instans (baca-saja) | scriptblock (§4.3.6) | Isi fungsi |
Di PowerShell, jenis ini adalah System.Management.Automation.FunctionInfo
.
-
CommandType
memiliki jenisSystem.Management.Automation.CommandTypes
. -
Options
memiliki jenisSystem.Management.Automation.ScopedItemOptions
. -
OutputType
berjenisSystem.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]]
. -
Parameters
memiliki jenisSystem.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]]
. -
ParameterSets
memiliki jenisSystem.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.CommandParameterSetInfo,System.Management.Automation]]
. - Visibilitas memiliki jenis
System.Management.Automation.SessionStateEntryVisibility
. - PowerShell juga memiliki properti yang disebut Visibility.
4.5.11 Jenis deskripsi filter
Jenis ini merangkum keadaan dari sebuah filter. Ini memiliki set anggota yang dapat diakses yang sama dengan jenis deskripsi fungsi (§4.5.10).
Di PowerShell, tipe ini adalah System.Management.Automation.FilterInfo
. Ini memiliki set properti yang sama dengan System.Management.Automation.FunctionInfo
(§4.5.11).
4.5.12 Jenis deskripsi modul
Jenis ini merangkum status modul. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Deskripsi | Properti instans (baca-tulis) | benang | Deskripsi modul (diatur oleh manifes) |
ModuleType | Properti instans (baca-saja) | Implementasi yang ditentukan | Jenis modul (Manifes, Skrip, atau Biner) |
Nama | Properti instans (baca-saja) | benang | Nama modul |
Jalur | Properti instans (baca-saja) | benang | Jalur modul |
Di PowerShell, jenis ini adalah System.Management.Automation.PSModuleInfo
. Jenis ModuleType
adalah System.Management.Automation.ModuleType
.
4.5.13 Jenis deskripsi objek kustom
Jenis ini merangkum status objek kustom. Ini tidak memiliki anggota yang dapat diakses.
Dalam PowerShell, tipe ini adalah System.Management.Automation.PSCustomObject
. Cmdlet Import-Module
dan New-Object
dapat menghasilkan objek jenis ini.
4.5.14 Jenis deskripsi perintah
Variabel otomatis $PSCmdlet
adalah objek yang mewakili cmdlet atau fungsi yang dijalankan. Jenis objek ini ditentukan oleh implementasi; objek ini memiliki anggota yang dapat diakses sebagai berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
ParameterSetName | Properti instans (baca-saja) | benang | Nama parameter set saat ini (lihat ParameterSetName) |
HarusLanjutkan | Metode instans | Kelebihan beban /bool |
Meminta konfirmasi operasi dari pengguna. |
ShouldProcess | Metode instans | Kelebihan beban /bool |
Meminta konfirmasi dari pengguna sebelum operasi dilakukan. |
Di PowerShell, jenis ini adalah System.Management.Automation.PSScriptCmdlet.
4.5.15 Jenis deskripsi rekaman kesalahan
Variabel otomatis $Error
berisi kumpulan rekaman kesalahan yang mewakili kesalahan terbaru (§3,12). Meskipun jenis koleksi ini tidak ditentukan, koleksi ini mendukung subskrip untuk mendapatkan akses ke rekaman kesalahan individual.
Di PowerShell, tipe koleksi adalah System.Collections.ArrayList
. Jenis rekaman kesalahan individual dalam koleksi System.Management.Automation.ErrorRecord
. Jenis ini memiliki properti publik berikut:
- CategoryInfo - Mendapatkan informasi tentang kategori kesalahan.
- ErrorDetails - Mendapatkan dan menetapkan informasi kesalahan yang lebih rinci, seperti pesan kesalahan penggantian.
- Pengecualian - Mendapatkan pengecualian yang terkait dengan rekaman kesalahan ini.
- FullyQualifiedErrorId - Mendapatkan pengidentifikasi kesalahan yang terkualifikasi penuh untuk rekaman kesalahan ini.
- InvocationInfo - Mendapatkan informasi tentang perintah yang dipanggil ketika kesalahan terjadi.
- PipelineIterationInfo - Mendapatkan status alur saat rekaman kesalahan ini dibuat
- TargetObject - Mendapatkan objek yang sedang diproses saat kesalahan terjadi.
4.5.16 Jenis deskripsi Enumerator
Beberapa variabel adalah enumerator untuk koleksi (§4). Variabel otomatis $foreach
adalah enumerator yang dibuat untuk pernyataan foreach
apa pun. Variabel otomatis $input
adalah enumerator untuk sekumpulan data yang diberikan ke fungsi dari pipeline. Variabel otomatis $switch
adalah enumerator yang dibuat untuk pernyataan switch
apa pun.
Jenis enumerator ditentukan oleh implementasi; ia memiliki anggota yang dapat diakses berikut ini:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Saat ini | Properti instans (baca-saja) | objek | Mendapatkan elemen saat ini dalam koleksi. Jika enumerator saat ini tidak diposisikan pada elemen koleksi, perilakunya bergantung pada implementasi. |
PindahBerikutnya | Metode instance | Tidak ada/bool | Memajukan enumerator ke elemen koleksi berikutnya. Mengembalikan $true jika enumerator berhasil dimajukan ke elemen berikutnya; $false jika enumerator telah melewati akhir koleksi. |
Di PowerShell, anggota ini didefinisikan dalam antarmuka System.IEnumerator
, yang diimplementasikan oleh jenis yang diidentifikasi di bawah ini. Jika enumerator saat ini tidak diposisikan pada elemen koleksi, kesalahan tipe InvalidOperationException
akan muncul. Untuk $foreach
, jenisnya System.Array+SZArrayEnumerator
. Untuk $input
, tipe ini adalah System.Collections.ArrayList+ArrayListEnumeratorSimple
. Untuk $switch
, jenis ini adalah System.Array+SZArrayEnumerator
.
4.5.17 Jenis deskripsi direktori
Cmdlet New-Item dapat membuat item dari berbagai jenis termasuk direktori FileSystem. Jenis objek deskripsi direktori ditentukan implementasi; ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Atributs | Properti instans (baca-tulis) | Implementasi yang ditentukan (§4.2.6.3) | Mendapatkan atau mengatur satu atau beberapa atribut objek direktori. |
Waktu Pembuatan | Properti instans (baca-tulis) | Implementasi yang ditentukan (§4.5.19) | Mendapatkan dan mengatur waktu pembuatan objek direktori. |
Ekstensi | Properti instans (baca-saja) | benang | Mengambil bagian ekstensi dari nama direktori. |
Nama Lengkap | Properti instans (baca-saja) | benang | Mendapatkan jalur lengkap direktori. |
WaktuPenulisanTerakhir | Properti instans (baca-tulis) | Implementasi yang ditentukan (§4.5.19) | Mendapatkan dan menetapkan waktu saat direktori terakhir kali dimodifikasi. |
Nama | Properti instans (baca-saja) | benang | Mendapatkan nama direktori. |
Di PowerShell, tipe ini System.IO.DirectoryInfo
. Jenis properti AtributSystem.IO.FileAttributes
.
4.5.18 Jenis deskripsi file
Cmdlet New-Item
dapat membuat item dari berbagai jenis termasuk file FileSystem. Jenis objek deskripsi file didefinisikan implementasi; ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Atributs | Properti instans (baca-tulis) | Implementasi yang ditentukan (§4.2.6.3) | Mendapatkan atau mengatur satu atau beberapa atribut objek file. |
BaseName | Properti instans (baca-saja) | benang | Mendapatkan nama file yang tidak termasuk ekstensi. |
Waktu Pembuatan | Properti Instance (baca-tulis) | Implementasi yang ditentukan (§4.5.19) | Mendapatkan dan mengatur waktu pembuatan objek file. |
Ekstensi | Properti instans (baca-saja) | benang | Memperoleh bagian ekstensi dari nama file. |
Nama Lengkap | Properti instans (baca-saja) | benang | Mendapatkan path lengkap dari file. |
WaktuPenulisanTerakhir | Properti instance (dapat dibaca-tulis) | Implementasi yang ditentukan (§4.5.19) | Mendapatkan dan mengatur waktu ketika file terakhir ditulis. |
Panjang | Properti instans (baca-saja) | panjang | Mengambil ukuran file dalam satuan byte. |
Nama | Properti instans (baca-saja) | benang | Mendapatkan nama file. |
Informasi Versi | Properti instans (baca-saja) | Implementasi yang ditentukan | Windows PowerShell: ScriptProperty ini mengembalikan System.Diagnostics.FileVersionInfo untuk file tersebut. |
Di PowerShell, tipe ini adalah System.IO.FileInfo
.
4.5.19 jenis deskripsi Date-Time
Jenis objek deskripsi tanggal-waktu didefinisikan oleh implementasi; ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Hari | Properti instans (baca-saja) | Integer | Mendapatkan komponen tanggal hari dari bulan yang diwakili oleh instans ini. |
Jam | Properti contoh (baca-saja) | Integer | Mendapatkan komponen jam dari tanggal yang diwakili oleh instans ini. |
Menit | Properti instans (baca-saja) | Integer | Mendapatkan komponen menit dari tanggal yang diwakili oleh instans ini. |
Bulan | Properti instans (baca-saja) | Integer | Mendapatkan komponen bulan dari tanggal yang diwakili oleh instans ini. |
Kedua | Properti instans (baca-saja) | Integer | Mendapatkan komponen detik dari tanggal yang diwakili oleh instans ini. |
Tahun | Properti instans (baca-saja) | Integer | Mendapatkan komponen tahun dari tanggal yang diwakili oleh instans ini. |
Objek jenis ini dapat dibuat oleh cmdlet Get-Date.
Di PowerShell, tipe ini System.DateTime
.
4.5.20 Group-Info tipe deskripsi
Jenis objek deskripsi info-grup dibuat tergantung pada implementasi; ini memiliki anggota yang dapat diakses sebagai berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Jumlah | Properti instans (baca-saja) | Integer | Mendapatkan jumlah elemen dalam grup. |
Kelompok | Properti instans (baca-saja) | Koleksi yang ditentukan oleh implementasi | Mendapatkan elemen grup. |
Nama | Properti instans (baca-saja) | benang | Mendapatkan nama grup. |
Nilai | Properti instans (baca-saja) | Koleksi yang implementasinya ditentukan | Mendapatkan nilai dari elemen-elemen grup. |
Objek jenis ini dapat dibuat oleh cmdlet Group-Object.
Dalam PowerShell, tipe ini adalah Microsoft.PowerShell.Commands.GroupInfo
.
4.5.21 Jenis deskripsi generik-Measure-Info
Jenis objek deskripsi generic-measure-info didefinisikan oleh implementasi; ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Tengah | Properti instans (baca-saja) | dua kali lipat | Mendapatkan rata-rata nilai properti yang diukur. |
Jumlah | Properti instans (baca-saja) | Integer | Mendapatkan jumlah objek dengan properti yang ditentukan. |
Maksimum | Properti instans (baca-saja) | dua kali lipat | Mendapatkan nilai maksimum properti yang ditentukan. |
Sekurang-kurangnya | Properti instans (baca-saja) | dua kali lipat | Memperoleh nilai minimum dari properti yang ditentukan. |
Harta benda | Properti instans (baca-saja) | benang | Mendapatkan properti yang akan diukur. |
Jumlah total | Properti instans (baca-saja) | dua kali lipat | Menjumlahkan nilai-nilai dari properti yang ditentukan. |
Objek jenis ini dapat dibuat oleh cmdlet Measure-Object.
Di PowerShell, tipe ini adalah Microsoft.PowerShell.Commands.GenericMeasureInfo
.
4.5.22 Teks-Measure-Info jenis deskripsi
Jenis objek deskripsi text-info ditentukan oleh implementasi; ini memiliki anggota berikut yang dapat diakses:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Karakter | Properti instans (baca-saja) | Integer | Mendapatkan jumlah karakter dalam objek target. |
Baris | Properti instans (baca-saja) | Integer | Mendapatkan jumlah baris dalam objek target. |
Harta benda | Properti instans (baca-saja) | benang | Mendapatkan properti yang akan diukur. |
Kata | Properti instans (baca-saja) | Integer | Menghitung jumlah kata dalam objek target. |
Objek jenis ini dapat dibuat oleh cmdlet Measure-Object
.
Di PowerShell, tipe ini adalah Microsoft.PowerShell.Commands.TextMeasureInfo
.
4.5.23 Jenis kredensial
Objek kredensial kemudian dapat digunakan dalam berbagai operasi keamanan. Jenis objek kredensial ditentukan oleh implementasi; ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Kata sandi | Properti instans (baca-saja) | Implementasi yang ditentukan | Mendapatkan kata sandi. |
Nama Pengguna | Properti instans (baca-saja) | benang | Mendapatkan nama pengguna. |
Objek jenis ini dapat dibuat oleh cmdlet Get-Credential.
Di PowerShell, tipe ini adalah System.Management.Automation.PSCredential
.
Jenis penanda metode
Jenis dari penunjuk metode ditentukan oleh implementasi; ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Memohon | Metode instans | nomor objek/variabel dan jenis | Mengambil jumlah variabel argumen, dan secara tidak langsung memanggil metode yang dirujuk oleh pendesain metode induk, meneruskan argumen. |
Objek jenis ini dapat dibuat oleh ekspresi pemanggilan (§7.1.3).
Di PowerShell, jenis ini adalah System.Management.Automation.PSMethod.
4.5.25 Jenis definisi anggota
Jenis ini merangkum definisi anggota. Ini memiliki anggota yang dapat diakses berikut:
Anggota | Jenis Anggota | Tipe | Tujuan |
---|---|---|---|
Definisi | Properti instans (baca-saja) | benang | Menampilkan definisi anggota. |
JenisAnggota | Properti instans (baca-saja) | Implementasi yang didefinisikan | Mendapatkan jenis PowerShell dari anggota. |
Nama | Properti instans (baca-saja) | benang | Mendapatkan nama anggota. |
NamaJenis | Properti instans (baca-saja) | benang | Mendapatkan nama tipe anggota. |
Di PowerShell, tipe ini adalah Microsoft.PowerShell.Commands.MemberDefinition
.
4.6 Jenis ekstensi dan adaptasi
Implementasi PowerShell mencakup keluarga jenis inti (yang didokumentasikan dalam bab ini) yang masing-masing berisi sekumpulan anggota dasar mereka sendiri. Anggota tersebut dapat menjadi metode atau properti, dan mereka dapat menjadi anggota instans atau statis. Misalnya, anggota dasar tipe string (§4.3.1) adalah properti instans Length dan metode instans ToLower dan ToUpper.
Saat objek dibuat, objek berisi semua properti instans dari jenis objek tersebut, dan metode instans jenis tersebut dapat dipanggil pada objek tersebut. Objek dapat disesuaikan melalui penambahan anggota instans saat runtime. Hasilnya disebut objek kustom . Setiap anggota yang ditambahkan ke instans hanya ada untuk masa pakai instans tersebut; instans lain dari jenis inti yang sama tidak terpengaruh.
Sekumpulan anggota dasar suatu jenis dapat diperluas dengan menambahkan jenis anggota berikut:
- anggota yang diadaptasi, melalui Sistem Tipe Diperluas (ETS), dengan sebagian besar detailnya tidak ditentukan.
- anggota yang diperluas, melalui cmdlet Add-Member.
Di PowerShell, anggota yang diperluas juga dapat ditambahkan melalui file types.ps1xml
. Anggota yang diadaptasi dan diperluas secara kolektif disebut anggota sintetis .
ETS menambahkan anggota berikut ke semua objek PowerShell: psbase, psadapted, psextended, dan pstypenames. Lihat parameter Force dan Tampilan di cmdlet Get-Member untuk informasi lebih lanjut tentang anggota-anggota ini.
Anggota instance dapat menyembunyikan anggota yang diperluas dan/atau diadaptasi dengan nama yang sama, dan anggota yang diperluas dapat menyembunyikan anggota yang diadaptasi. Dalam kasus seperti itu, set anggota psadapted dan psextended dapat digunakan untuk mengakses anggota tersembunyi tersebut.
Jika types.ps1xml
menentukan anggota yang disebut Mendukung, obj.psextended
menyediakan akses hanya ke anggota tersebut dan bukan kepada anggota yang ditambahkan melalui Add-Member
.
Ada tiga cara membuat objek kustom yang memiliki anggota baru M:
Pendekatan ini dapat digunakan untuk menambahkan satu atau beberapa anggota NoteProperty.
$x = New-Object PSObject -Property @{M = 123}
Pendekatan ini dapat digunakan untuk menambahkan anggota NoteProperty atau ScriptMethod.
$x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}
Pendekatan ini dapat digunakan untuk menambahkan anggota apa pun.
$x = New-Object PSObject Add-Member -InputObject $x -Name M -MemberType NoteProperty -Value 123
PSObject
adalah jenis dasar dari semua jenis PowerShell.