Bagikan melalui


4. Jenis

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)
Copy(sumber, tujuan, panjang jumlah)
Copy(source, sourceIndex, tujuan , destinationIndex, jumlah int)
Copy(source, sourceIndex, tujuan, destinationIndex, panjang jumlah)

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 jenis System.Management.Automation.CommandTypes.
  • Options memiliki jenis System.Management.Automation.ScopedItemOptions.
  • OutputType berjenis System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]].
  • Parameters memiliki jenis System.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]].
  • ParameterSets memiliki jenis System.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:

  1. Pendekatan ini dapat digunakan untuk menambahkan satu atau beberapa anggota NoteProperty.

    $x = New-Object PSObject -Property @{M = 123}
    
  2. Pendekatan ini dapat digunakan untuk menambahkan anggota NoteProperty atau ScriptMethod.

    $x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}
    
  3. 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.