about_Variables
Deskripsi singkat
Menjelaskan bagaimana variabel menyimpan nilai yang dapat digunakan di PowerShell.
Deskripsi panjang
Anda dapat menyimpan semua jenis nilai dalam variabel PowerShell. Misalnya, simpan hasil perintah, dan simpan elemen yang digunakan dalam perintah dan ekspresi, seperti nama, jalur, pengaturan, dan nilai.
Variabel adalah unit memori tempat nilai disimpan. Di PowerShell, variabel diwakili oleh string teks yang dimulai dengan tanda dolar ($
), seperti $a
, , $process
atau $my_var
.
Nama variabel tidak peka huruf besar/kecil, dan dapat menyertakan spasi dan karakter khusus. Tetapi, nama variabel yang mencakup karakter dan spasi khusus sulit digunakan dan harus dihindari. Untuk informasi selengkapnya, lihat Nama variabel yang menyertakan karakter khusus.
Ada beberapa jenis variabel yang berbeda di PowerShell.
Variabel yang dibuat pengguna: Variabel yang dibuat pengguna dibuat dan dikelola oleh pengguna. Secara default, variabel yang Anda buat di baris perintah PowerShell hanya ada saat jendela PowerShell terbuka. Saat jendela PowerShell ditutup, variabel akan dihapus. Untuk menyimpan variabel, tambahkan ke profil PowerShell Anda. Anda juga dapat membuat variabel dalam skrip dengan cakupan global, skrip, atau lokal.
Variabel otomatis: Variabel otomatis menyimpan status PowerShell. Variabel ini dibuat oleh PowerShell, dan PowerShell mengubah nilainya sesuai kebutuhan untuk mempertahankan akurasinya. Pengguna tidak dapat mengubah nilai variabel ini. Misalnya,
$PSHOME
variabel menyimpan jalur ke direktori penginstalan PowerShell.Untuk informasi selengkapnya, daftar, dan deskripsi variabel otomatis, lihat about_Automatic_Variables.
Variabel preferensi: Variabel preferensi menyimpan preferensi pengguna untuk PowerShell. Variabel ini dibuat oleh PowerShell dan diisi dengan nilai default. Pengguna dapat mengubah nilai variabel ini. Misalnya,
$MaximumHistoryCount
variabel menentukan jumlah maksimum entri dalam riwayat sesi.Untuk informasi selengkapnya, daftar, dan deskripsi variabel preferensi, lihat about_Preference_Variables.
Bekerja dengan variabel
Untuk membuat variabel baru, gunakan pernyataan penugasan untuk menetapkan nilai ke variabel. Anda tidak perlu mendeklarasikan variabel sebelum menggunakannya. Nilai default dari semua variabel adalah $null
.
Untuk mendapatkan daftar semua variabel dalam sesi PowerShell Anda, ketik Get-Variable
. Nama variabel ditampilkan tanpa tanda dolar sebelumnya ($
) yang digunakan untuk mereferensikan variabel.
Contohnya:
$MyVariable = 1, 2, 3
$Path = "C:\Windows\System32"
Variabel berguna untuk menyimpan hasil perintah.
Contohnya:
$Processes = Get-Process
$Today = (Get-Date).DateTime
Untuk menampilkan nilai variabel, ketik nama variabel, yang didahului dengan tanda dolar ($
).
Contohnya:
$MyVariable
1
2
3
$Today
Tuesday, September 3, 2019 09:46:46
Untuk mengubah nilai variabel, tetapkan nilai baru ke variabel .
Contoh berikut menampilkan nilai $MyVariable
variabel, mengubah nilai variabel, lalu menampilkan nilai baru.
$MyVariable = 1, 2, 3
$MyVariable
1
2
3
$MyVariable = "The green cat."
$MyVariable
The green cat.
Untuk menghapus nilai variabel, gunakan Clear-Variable
cmdlet atau ubah nilai menjadi $null
.
Clear-Variable -Name MyVariable
$MyVariable = $null
Untuk menghapus variabel, gunakan Remove-Variable atau Remove-Item.
Remove-Variable -Name MyVariable
Remove-Item -Path Variable:\MyVariable
Dimungkinkan juga untuk menetapkan nilai ke beberapa variabel dengan satu pernyataan. Contoh berikut menetapkan nilai yang sama ke beberapa variabel:
$a = $b = $c = 0
Contoh berikutnya menetapkan beberapa nilai ke beberapa variabel.
$i,$j,$k = 10, "red", $true # $i is 10, $j is "red", $k is True
$i,$j = 10, "red", $true # $i is 10, $j is [object[]], Length 2
Untuk informasi selengkapnya, lihat bagian Menetapkan beberapa variabel dari about_Assignment_Operators.
Jenis variabel
Anda dapat menyimpan semua jenis objek dalam variabel, termasuk bilangan bulat, string, array, dan tabel hash. Dan, objek yang mewakili proses, layanan, log peristiwa, dan komputer.
Variabel PowerShell ditik secara longgar, yang berarti variabel tersebut tidak terbatas pada jenis objek tertentu. Satu variabel bahkan dapat berisi koleksi, atau array, dari berbagai jenis objek secara bersamaan.
Jenis data variabel ditentukan oleh jenis .NET dari nilai variabel. Untuk melihat jenis objek variabel, gunakan Get-Member.
Contohnya:
$a = 12 # System.Int32
$a = "Word" # System.String
$a = 12, "Word" # array of System.Int32, System.String
$a = Get-ChildItem C:\Windows # FileInfo and DirectoryInfo types
Anda dapat menggunakan atribut jenis dan notasi transmisi untuk memastikan bahwa variabel hanya dapat berisi jenis objek atau objek tertentu yang dapat dikonversi ke jenis tersebut. Jika Anda mencoba menetapkan nilai jenis lain, PowerShell mencoba mengonversi nilai ke jenisnya. Jika jenis tidak dapat dikonversi, pernyataan penugasan gagal.
Untuk menggunakan notasi cast, masukkan nama jenis, diapit dalam tanda kurung siku, sebelum nama variabel (di sisi kiri pernyataan penugasan). Contoh berikut membuat $number
variabel yang hanya dapat berisi bilangan bulat, $words
variabel yang hanya dapat berisi string, dan $dates
variabel yang hanya dapat berisi objek DateTime .
[int]$number = 8
$number = "12345" # The string is converted to an integer.
$number = "Hello"
Cannot convert value "Hello" to type "System.Int32". Error: "Input string
was not in a correct format."
At line:1 char:1
+ $number = "Hello"
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : MetadataError: (:) [],
ArgumentTransformationMetadataException
+ FullyQualifiedErrorId : RuntimeException
[string]$words = "Hello"
$words = 2 # The integer is converted to a string.
$words += 10 # The plus (+) sign concatenates the strings.
$words
210
[datetime] $dates = "09/12/91" # The string is converted to a DateTime object.
$dates
Thursday, September 12, 1991 00:00:00
$dates = 10 # The integer is converted to a DateTime object.
$dates
Monday, January 1, 0001 00:00:00
Menggunakan variabel dalam perintah dan ekspresi
Untuk menggunakan variabel dalam perintah atau ekspresi, ketik nama variabel, yang didahului oleh tanda dolar ($
).
Jika nama variabel dan tanda dolar tidak diapit dalam tanda kutip, atau jika diapit dalam tanda kutip ganda ("
), nilai variabel digunakan dalam perintah atau ekspresi.
Jika nama variabel dan tanda dolar diapit dalam tanda kutip tunggal ('
), nama variabel digunakan dalam ekspresi.
Untuk informasi selengkapnya tentang menggunakan tanda kutip di PowerShell, lihat about_Quoting_Rules.
Contoh ini mendapatkan nilai $PROFILE
variabel, yang merupakan jalur ke file profil pengguna PowerShell di konsol PowerShell.
$PROFILE
C:\Users\User01\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
Dalam contoh ini, dua perintah diperlihatkan yang dapat membuka profil PowerShell di notepad.exe. Contoh dengan tanda kutip ganda ("
) menggunakan nilai variabel.
notepad $PROFILE
notepad "$PROFILE"
Contoh berikut menggunakan tanda kutip tunggal ('
) yang memperlakukan variabel sebagai teks literal.
'$PROFILE'
$PROFILE
'Use the $PROFILE variable.'
Use the $PROFILE variable.
Nama variabel yang menyertakan karakter khusus
Nama variabel dimulai dengan tanda dolar ($
) dan dapat menyertakan karakter alfanumerik dan karakter khusus. Panjang nama variabel hanya dibatasi oleh memori yang tersedia.
Praktik terbaiknya adalah bahwa nama variabel hanya menyertakan karakter alfanumerik dan karakter garis bawah (_
). Nama variabel yang mencakup spasi dan karakter khusus lainnya, sulit digunakan dan harus dihindari.
Nama variabel alfanumerik dapat berisi karakter ini:
- Karakter Unicode dari kategori ini: Lu, Ll, Lt, Lm, Lo, atau Nd.
- Karakter garis bawah (
_
). - Karakter tanda tanya (
?
).
Daftar berikut berisi deskripsi kategori Unicode. Untuk informasi selengkapnya, lihat UnicodeCategory.
- Lu - UppercaseLetter
- Ll - LowercaseLetter
- Lt - TitlecaseLetter
- Lm - ModifierLetter
- Lo - OtherLetter
- Nd - DecimalDigitNumber
Untuk membuat atau menampilkan nama variabel yang menyertakan spasi atau karakter khusus, sertakan nama variabel dengan karakter kurung kurawal ({}
).
Kurung kurawal mengarahkan PowerShell untuk menginterpretasikan karakter nama variabel sebagai literal.
Nama variabel karakter khusus dapat berisi karakter ini:
- Setiap karakter Unicode, dengan pengecualian berikut:
- Karakter kurung kurawal penutup (
}
) (U+007D). - Karakter backtick (
`
) (U+0060). Backtick digunakan untuk menghindari karakter Unicode sehingga diperlakukan sebagai harfiah.
- Karakter kurung kurawal penutup (
PowerShell memiliki variabel cadangan seperti $$
, , $?
$^
, dan $_
yang berisi karakter alfanumerik dan khusus. Untuk informasi selengkapnya, lihat about_Automatic_Variables.
Misalnya, perintah berikut membuat variabel bernama save-items
. Kurung kurawal ({}
) diperlukan karena nama variabel menyertakan karakter khusus tanda hubung (-
).
${save-items} = "a", "b", "c"
${save-items}
a
b
c
Perintah berikut mendapatkan item anak dalam direktori yang diwakili oleh ProgramFiles(x86)
variabel lingkungan.
Get-ChildItem ${env:ProgramFiles(x86)}
Untuk mereferensikan nama variabel yang mencakup kurung kurawal, sertakan nama variabel dalam kurung kurawal, dan gunakan karakter backtick untuk menghindari kurung kurawal. Misalnya, untuk membuat variabel bernama this{value}is
type:
${this`{value`}is} = "This variable name uses braces and backticks."
${this`{value`}is}
This variable name uses braces and backticks.
Variabel dan cakupan
Secara default, variabel hanya tersedia dalam cakupan tempat variabel dibuat.
Misalnya, variabel yang Anda buat dalam fungsi hanya tersedia dalam fungsi. Variabel yang Anda buat dalam skrip hanya tersedia dalam skrip. Jika Anda sumber titik skrip, variabel ditambahkan ke cakupan saat ini. Untuk informasi selengkapnya, lihat about_Scopes.
Anda dapat menggunakan pengubah cakupan untuk mengubah cakupan default variabel. Ekspresi berikut membuat variabel bernama Computers
. Variabel memiliki cakupan global, bahkan ketika dibuat dalam skrip atau fungsi.
$Global:Computers = "Server01"
Untuk skrip atau perintah apa pun yang dijalankan di luar sesi, Anda memerlukan Using
pengubah cakupan untuk menyematkan nilai variabel dari cakupan sesi panggilan, sehingga kode di luar sesi dapat mengaksesnya.
Untuk informasi selengkapnya, lihat about_Remote_Variables.
Menyimpan variabel
Variabel yang Anda buat hanya tersedia dalam sesi tempat Anda membuatnya. Mereka hilang ketika Anda menutup sesi Anda.
Untuk membuat variabel di setiap sesi PowerShell yang Anda mulai, tambahkan variabel ke profil PowerShell Anda.
Misalnya, untuk mengubah nilai $VerbosePreference
variabel di setiap sesi PowerShell, tambahkan perintah berikut ke profil PowerShell Anda.
$VerbosePreference = "Continue"
Anda dapat menambahkan perintah ini ke profil PowerShell Anda dengan membuka $PROFILE
file di editor teks, seperti notepad.exe. Untuk informasi selengkapnya tentang profil PowerShell, lihat about_Profiles.
Variabel: drive
Penyedia Variabel PowerShell membuat Variable:
drive yang terlihat dan bertindak seperti drive sistem file, tetapi berisi variabel dalam sesi Anda dan nilainya.
Untuk mengubah ke Variable:
drive, gunakan perintah berikut:
Set-Location Variable:
Untuk mencantumkan item dan variabel di Variable:
drive, gunakan Get-Item
cmdlet atau Get-ChildItem
.
Get-ChildItem Variable:
Untuk mendapatkan nilai variabel tertentu, gunakan notasi sistem file untuk menentukan nama drive dan nama variabel. Misalnya, untuk mendapatkan $PSCulture
variabel otomatis, gunakan perintah berikut.
Get-Item Variable:\PSCulture
Name Value
---- -----
PSCulture en-US
Untuk menampilkan informasi selengkapnya tentang Variable:
drive dan penyedia Variabel PowerShell, ketik:
Get-Help Variable
Sintaks variabel dengan jalur penyedia
Anda dapat mengawali jalur penyedia dengan tanda dolar ($
), dan mengakses konten penyedia apa pun yang mengimplementasikan antarmuka IContentCmdletProvider .
Penyedia PowerShell bawaan berikut mendukung notasi ini:
Cmdlet variabel
PowerShell menyertakan sekumpulan cmdlet yang dirancang untuk mengelola variabel.
Untuk mencantumkan cmdlet, ketik:
Get-Command -Noun Variable
Untuk mendapatkan bantuan untuk cmdlet tertentu, ketik:
Get-Help <cmdlet-name>
Nama Cmdlet | Deskripsi |
---|---|
Clear-Variable |
Menghapus nilai variabel. |
Get-Variable |
Mendapatkan variabel di konsol saat ini. |
New-Variable |
Membuat variabel baru. |
Remove-Variable |
Menghapus variabel dan nilainya. |
Set-Variable |
Mengubah nilai variabel. |