Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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, $, $aveya $processgibi dolar işareti ($my_var) ile başlayan metin dizeleriyle 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,
$PSHOMEdeğişkeni 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,
$MaximumHistoryCountdeğişkeni 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 $nulldeğeridir.
PowerShell oturumunuzda tüm değişkenlerin listesini almak için Get-Variableyazın. 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 $MyVariable değişkeninin 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.
Değişkenin değerini silmek için Clear-Variable cmdlet'ini kullanın veya değerini $nullolarak değiştirin.
Clear-Variable -Name MyVariable
$MyVariable = $null
Değişkeni silmek için Remove-Variable veya Remove-Itemkullanı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_OperatorsBirden ç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. Değişkenin nesne türünü görüntülemek için Get-Memberkullanı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şkeni, yalnızca dizeler içerebilen bir $words değişkeni ve yalnızca $dates nesneleri içerebilen bir değişkeni 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şaretleri içine alınmışsa, değişkenin değeri komutta veya ifadede kullanılır.
Değişken adı ve dolar işareti tek tırnak (') işaretleri içine alınmışsa, ifadede değişken adı kullanılır.
PowerShell'de tırnak işaretleri kullanma hakkında daha fazla bilgi için bkz. about_Quoting_Rules.
Bu örnek, PowerShell konsolundaki PowerShell kullanıcı profili dosyasının yolu olan $PROFILE değişkeninin değerini alır.
$PROFILE
C:\Users\User01\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
Bu örnekte, PowerShell profilini notepad.exeaçabilen iki komut gösterilmektedir. Çift tırnak (") işaretlerine sahip ö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:
- Bu kategorilerden Unicode karakterler: Lu, Ll, Lt, Lm, Loveya Nd.
- Alt çizgi (
_) karakteri. - Soru işareti (
?) karakteri.
Aşağıdaki liste Unicode kategori açıklamalarını içerir. Daha fazla bilgi için bkz. UnicodeCategory.
- Lu - Büyük Harf
- ll - Küçük Harf
- Lt - TitlecaseLetter
- Lm - Değiştirici Mektup
- Lo - DiğerMektup
- Nd - OndalıkBasamakSayı
Boşluklar veya özel karakterler 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'de alfasayısal ve özel karakterler içeren $$, $?, $^ve $_ gibi ayrılmış değişkenler vardır. Daha fazla bilgi için bkz. about_Automatic_Variables.
Örneğin, aşağıdaki komut save-itemsadlı 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, ProgramFiles(x86) ortam değişkeni tarafından temsil edilen dizindeki 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, this{value}is türü adlı 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 Computersadlı 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 değişken değerleri eklemek için Using 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 $VerbosePreference değişkeninin değerini değiştirmek için PowerShell profilinize aşağıdaki komutu ekleyin.
$VerbosePreference = "Continue"
$PROFILE dosyasını notepad.exegibi bir metin düzenleyicisinde açarak 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üsü oluşturur, ancak oturumunuzda değişkenleri ve bunların değerlerini içerir.
Variable: sürücüsüne geçmek için aşağıdaki komutu kullanın:
Set-Location Variable:
Variable: sürücüsündeki öğeleri ve değişkenleri listelemek için Get-Item veya Get-ChildItem cmdlet'lerini 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, $PSCulture otomatik değişkenini almak için aşağıdaki komutu kullanın.
Get-Item Variable:\PSCulture
Name Value
---- -----
PSCulture en-US
Variable: sürücüsü ve PowerShell Değişkeni sağlayıcısı hakkında 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şturur. |
Remove-Variable |
Bir değişkeni ve değerini siler. |
Set-Variable |
Değişkenin değerini değiştirir. |