about_Variables
Kısa açıklama
Değişkenlerin PowerShell'de kullanılabilecek değerleri nasıl depoladığını açıklar.
Uzun açıklama
Tüm değer türlerini PowerShell değişkenlerinde depolayabilirsiniz. Örneğin, komutların sonuçlarını depolayın ve adlar, yollar, ayarlar ve değerler gibi komutlarda ve ifadelerde kullanılan öğeleri depolayın.
Değişken, değerlerin depolandığı bir bellek birimidir. PowerShell'de değişkenler , veya $my_var
gibi $a
bir dolar işareti ($
ile başlayan metin dizeleriyle $process
temsil edilir.
Değişken adları büyük/küçük harfe duyarlı değildir ve boşluklar ve özel karakterler içerebilir. Ancak, özel karakterler ve boşluklar içeren değişken adlarının kullanılması zordur ve bundan kaçınılmalıdır. Daha fazla bilgi için bkz . Özel karakterler içeren değişken adları.
PowerShell'de çeşitli değişken türleri vardır.
Kullanıcı tarafından oluşturulan değişkenler: Kullanıcı tarafından oluşturulan değişkenler kullanıcı tarafından oluşturulur ve korunur. Varsayılan olarak, PowerShell komut satırında oluşturduğunuz değişkenler yalnızca PowerShell penceresi açıkken bulunur. PowerShell pencereleri kapatıldığında değişkenler silinir. Bir değişkeni kaydetmek için PowerShell profilinize ekleyin. Genel, betik veya yerel kapsama sahip betiklerde de değişkenler oluşturabilirsiniz.
Otomatik değişkenler: Otomatik değişkenler PowerShell'in durumunu depolar. Bu değişkenler PowerShell tarafından oluşturulur ve PowerShell, doğruluklarını korumak için değerlerini gerektiği gibi değiştirir. Kullanıcılar bu değişkenlerin değerini değiştiremez. Örneğin,
$PSHOME
değişken PowerShell yükleme dizininin yolunu depolar.Daha fazla bilgi, bir liste ve otomatik değişkenlerin açıklaması için bkz . about_Automatic_Variables.
Tercih değişkenleri: Tercih değişkenleri PowerShell için kullanıcı tercihlerini depolar. Bu değişkenler PowerShell tarafından oluşturulur ve varsayılan değerlerle doldurulur. Kullanıcılar bu değişkenlerin değerlerini değiştirebilir. Örneğin,
$MaximumHistoryCount
değişken oturum geçmişindeki en fazla girdi sayısını belirler.Daha fazla bilgi, bir liste ve tercih değişkenlerinin açıklaması için bkz . about_Preference_Variables.
Değişkenlerle çalışma
Yeni bir değişken oluşturmak için, değişkene değer atamak için atama deyimini kullanın. Değişkeni kullanmadan önce bildirmeniz gerekmez. Tüm değişkenlerin varsayılan değeri olur $null
.
PowerShell oturumunuzda tüm değişkenlerin listesini almak için yazın Get-Variable
. Değişken adları, değişkenlere başvurmak için kullanılan önceki dolar ($
) işareti olmadan görüntülenir.
Örneğin:
$MyVariable = 1, 2, 3
$Path = "C:\Windows\System32"
Değişkenler, komutların sonuçlarını depolamak için kullanışlıdır.
Örneğin:
$Processes = Get-Process
$Today = (Get-Date).DateTime
Bir değişkenin değerini görüntülemek için, önünde dolar işareti ($
) bulunan değişken adını yazın.
Örneğin:
$MyVariable
1
2
3
$Today
Tuesday, September 3, 2019 09:46:46
Değişkenin değerini değiştirmek için değişkene yeni bir değer atayın.
Aşağıdaki örnekler değişkenin $MyVariable
değerini görüntüler, değişkenin değerini değiştirir ve ardından yeni değeri görüntüler.
$MyVariable = 1, 2, 3
$MyVariable
1
2
3
$MyVariable = "The green cat."
$MyVariable
The green cat.
Bir değişkenin değerini silmek için cmdlet'ini Clear-Variable
kullanın veya değerini olarak $null
değiştirin.
Clear-Variable -Name MyVariable
$MyVariable = $null
Değişkeni silmek için Remove-Variable veya Remove-Item kullanın.
Remove-Variable -Name MyVariable
Remove-Item -Path Variable:\MyVariable
Bir deyimle birden çok değişkene değer atamak da mümkündür. Aşağıdaki örnekler aynı değeri birden çok değişkene atar:
$a = $b = $c = 0
Sonraki örnek, birden çok değişkene birden çok değer atar.
$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
Daha ayrıntılı bilgi için about_Assignment_Operators birden çok değişken atama bölümüne bakın.
Değişken türleri
Tamsayılar, dizeler, diziler ve karma tablolar dahil olmak üzere herhangi bir nesne türünü bir değişkende depolayabilirsiniz. Ayrıca işlemleri, hizmetleri, olay günlüklerini ve bilgisayarları temsil eden nesneler.
PowerShell değişkenleri gevşek bir şekilde yazılır, yani belirli bir nesne türüyle sınırlı değildir. Tek bir değişken, aynı anda farklı nesne türlerinde bir koleksiyon veya dizi bile içerebilir.
Bir değişkenin veri türü, değişkenin değerlerinin .NET türleri tarafından belirlenir. Bir değişkenin nesne türünü görüntülemek için Get-Member kullanın.
Örneğin:
$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
Bir değişkenin yalnızca belirli nesne türlerini veya o türe dönüştürülebilecek nesneleri içerediğinden emin olmak için tür özniteliğini ve atama gösterimini kullanabilirsiniz. Başka türde bir değer atamaya çalışırsanız, PowerShell değeri türüne dönüştürmeye çalışır. Tür dönüştürülemezse atama deyimi başarısız olur.
Atama gösterimini kullanmak için değişken adından önce köşeli ayraç içine alınmış bir tür adı girin (atama deyiminin sol tarafında). Aşağıdaki örnek yalnızca tamsayılar içerebilen bir $number
değişken, yalnızca dizeler içerebilen bir $words
değişken ve yalnızca DateTime nesneleri içerebilen bir $dates
değişken oluşturur.
[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
Komutlarda ve ifadelerde değişkenleri kullanma
Bir komut veya ifadede değişken kullanmak için, önünde dolar ($
) işareti bulunan değişken adını yazın.
Değişken adı ve dolar işareti tırnak içine alınmadıysa veya çift tırnak ("
) işareti içine alınmışsa, değişkenin değeri komut veya ifadede kullanılır.
Değişken adı ve dolar işareti tek tırnak işareti ('
) içine alınmışsa, ifadede değişken adı kullanılır.
PowerShell'de tırnak işaretlerini kullanma hakkında daha fazla bilgi için bkz . about_Quoting_Rules.
Bu örnek, PowerShell konsolundaki $PROFILE
PowerShell kullanıcı profili dosyasının yolu olan değişkenin değerini alır.
$PROFILE
C:\Users\User01\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
Bu örnekte, PowerShell profilini notepad.exe açabilen iki komut gösterilmiştir. Çift tırnak işareti ("
) işareti olan örnekte değişkenin değeri kullanılır.
notepad $PROFILE
notepad "$PROFILE"
Aşağıdaki örneklerde değişkeni değişmez metin olarak değerlendiren tek tırnak ('
) işaretleri kullanılır.
'$PROFILE'
$PROFILE
'Use the $PROFILE variable.'
Use the $PROFILE variable.
Özel karakterler içeren değişken adları
Değişken adları bir dolar ($
) işaretiyle başlar ve alfasayısal karakterler ve özel karakterler içerebilir. Değişken adı uzunluğu yalnızca kullanılabilir bellekle sınırlıdır.
En iyi yöntem, değişken adlarının yalnızca alfasayısal karakterleri ve alt çizgi (_
) karakterini içermesidir. Boşluk ve diğer özel karakterleri içeren değişken adlarının kullanılması zordur ve bundan kaçınılmalıdır.
Alfasayısal değişken adları şu karakterleri içerebilir:
- Şu kategorilerden Unicode karakterler: Lu, Ll, Lt, Lm, Lo veya Nd.
- Alt çizgi (
_
) karakteri. - Soru işareti (
?
) karakteri.
Aşağıdaki listede Unicode kategori açıklamaları yer alır. Daha fazla bilgi için bkz . UnicodeCategory.
- Lu - Büyük HarfLetter
- Ll - LowercaseLetter
- Lt - TitlecaseLetter
- Lm - Değiştirici
- Lo - OtherLetter
- Nd - DecimalDigitNumber
Boşluk veya özel karakter içeren bir değişken adı oluşturmak veya görüntülemek için değişken adını küme ayracı ({}
) karakterleriyle çevreleyin.
Küme ayraçları PowerShell'i değişken adının karakterlerini değişmez değer olarak yorumlamaya yönlendirir.
Özel karakter değişkeni adları şu karakterleri içerebilir:
- Aşağıdaki özel durumlar dışında herhangi bir Unicode karakteri:
- Kapanış küme ayracı (
}
) karakteri (U+007D). - Backtick (
`
) karakteri (U+0060). Backtick, Unicode karakterlerinden kurtulmak için kullanılır, böylece değişmez değer olarak değerlendirilir.
- Kapanış küme ayracı (
PowerShell, alfasayısal ve özel karakterler içeren , $?
, $^
ve $_
gibi $$
ayrılmış değişkenlere sahiptir. Daha fazla bilgi için bkz . about_Automatic_Variables.
Örneğin, aşağıdaki komut adlı save-items
değişkeni oluşturur. Değişken adı kısa çizgi ({}
) özel karakteri içerdiğinden küme ayracı (-
) gereklidir.
${save-items} = "a", "b", "c"
${save-items}
a
b
c
Aşağıdaki komut, dizindeki ortam değişkeni tarafından ProgramFiles(x86)
temsil edilen alt öğeleri alır.
Get-ChildItem ${env:ProgramFiles(x86)}
Küme ayraçları içeren bir değişken adına başvurmak için, değişken adını ayraç içine alın ve küme ayraçlarından kaçmak için backtick karakterini kullanın. Örneğin, type adlı this{value}is
bir değişken oluşturmak için:
${this`{value`}is} = "This variable name uses braces and backticks."
${this`{value`}is}
This variable name uses braces and backticks.
Değişkenler ve kapsam
Varsayılan olarak, değişkenler yalnızca oluşturuldukları kapsamda kullanılabilir.
Örneğin, bir işlevde oluşturduğunuz bir değişken yalnızca işlev içinde kullanılabilir. Betikte oluşturduğunuz bir değişken yalnızca betik içinde kullanılabilir. Betiğin kaynağını noktalı yaparsanız, değişken geçerli kapsama eklenir. Daha fazla bilgi için bkz . about_Scopes.
Değişkenin varsayılan kapsamını değiştirmek için kapsam değiştirici kullanabilirsiniz. Aşağıdaki ifade adlı Computers
bir değişken oluşturur. Değişkenin bir betikte veya işlevde oluşturulduğunda bile genel bir kapsamı vardır.
$Global:Computers = "Server01"
Oturum dışında yürütülen herhangi bir betik veya komut için, çağıran oturum kapsamından Using
değişken değerleri eklemek için kapsam değiştiricisine ihtiyacınız vardır; böylece oturum dışı kod bunlara erişebilir.
Daha fazla bilgi için bkz . about_Remote_Variables.
Değişkenleri kaydetme
Oluşturduğunuz değişkenler yalnızca bunları oluşturduğunuz oturumda kullanılabilir. Oturumunuzu kapattığınızda kaybolurlar.
Başlattığınız her PowerShell oturumunda değişkeni oluşturmak için değişkeni PowerShell profilinize ekleyin.
Örneğin, her PowerShell oturumunda değişkenin $VerbosePreference
değerini değiştirmek için PowerShell profilinize aşağıdaki komutu ekleyin.
$VerbosePreference = "Continue"
Dosyayı notepad.exe gibi bir metin düzenleyicisinde açarak $PROFILE
bu komutu PowerShell profilinize ekleyebilirsiniz. PowerShell profilleri hakkında daha fazla bilgi için bkz . about_Profiles.
Değişken: sürücüsü
PowerShell Değişkeni sağlayıcısı, dosya sistemi sürücüsü gibi görünen ve bu sürücü gibi davranan bir Variable:
sürücü oluşturur, ancak oturumunuzda değişkenleri ve bunların değerlerini içerir.
Sürücüye Variable:
geçmek için aşağıdaki komutu kullanın:
Set-Location Variable:
Sürücüdeki öğeleri ve değişkenleri Variable:
listelemek için veya Get-ChildItem
cmdlet'lerini Get-Item
kullanın.
Get-ChildItem Variable:
Belirli bir değişkenin değerini almak için dosya sistemi gösterimini kullanarak sürücünün adını ve değişkenin adını belirtin. Örneğin, otomatik değişkeni almak $PSCulture
için aşağıdaki komutu kullanın.
Get-Item Variable:\PSCulture
Name Value
---- -----
PSCulture en-US
Sürücü ve PowerShell Değişkeni sağlayıcısı hakkında Variable:
daha fazla bilgi görüntülemek için şunu yazın:
Get-Help Variable
Sağlayıcı yolları ile değişken söz dizimi
Bir sağlayıcı yolunun önüne dolar ($
) işareti ekleyebilir ve IContentCmdletProvider arabirimini uygulayan herhangi bir sağlayıcının içeriğine erişebilirsiniz.
Aşağıdaki yerleşik PowerShell sağlayıcıları bu gösterimi destekler:
Değişken cmdlet'leri
PowerShell, değişkenleri yönetmek için tasarlanmış bir cmdlet kümesi içerir.
Cmdlet'leri listelemek için şunu yazın:
Get-Command -Noun Variable
Belirli bir cmdlet için yardım almak için şunu yazın:
Get-Help <cmdlet-name>
Cmdlet Adı | Açıklama |
---|---|
Clear-Variable |
Değişkenin değerini siler. |
Get-Variable |
Geçerli konsoldaki değişkenleri alır. |
New-Variable |
Yeni bir değişken oluşturun. |
Remove-Variable |
Bir değişkeni ve değerini siler. |
Set-Variable |
Değişkenin değerini değiştirir. |
Ayrıca bkz.
PowerShell