3. temel kavramlar

3,1 sağlayıcı ve sürücü

Sağlayıcı , komut satırından kolayca erişilemeyen veri ve bileşenlere erişim sağlar. Veriler, dosya sistemi sürücüsüne benzeyen tutarlı bir biçimde sunulmaktadır.

Bir sağlayıcının sunduğu veriler bir sürücüde görünür ve verilere disk sürücüsüyle benzer bir yol üzerinden erişilir. Her sağlayıcının yerleşik cmdlet 'leri sağlayıcı sürücüsündeki verileri yönetir.

PowerShell, farklı türlerdeki veri depolarına erişmek için aşağıdaki yerleşik sağlayıcılar kümesini içerir:

Sağlayıcı Sürücü adı Açıklama Ref.
Diğer ad Ek PowerShell diğer adları § 3.1.1
Ortam Env Ortam değişkenleri § 3.1.2
DosyaSistemi A:, B:, C:,... Disk sürücüleri, dizinler ve dosyalar § 3.1.3
İşlev Çalışmayacaktır PowerShell işlevleri § 3.1.4
Değişken Değişken PowerShell değişkenleri § 3.1.5

Windows PowerShell:

Sağlayıcı Sürücü adı Açıklama
Sertifika CERT Dijital imzalar için x509 sertifikaları
Kayıt Defteri HKLM: (HKEY_LOCAL_MACHINE), HKCU: (HKEY_CURRENT_USER) Windows kayıt defteri
WSMan WSMan WS-Management yapılandırma bilgileri

Aşağıdaki cmdlet 'ler sağlayıcılar ve sürücülerle ilgilenir:

  • Get-PSProvider: bir veya daha fazla sağlayıcı hakkında bilgi alır
  • Get-PSDrive: bir veya daha fazla sürücü hakkında bilgi alır

Sağlayıcıyı temsil eden bir nesnenin türü, § 4.5.1içinde açıklanmaktadır. Bir sürücüyü temsil eden nesnenin türü § 4.5.2içinde açıklanmaktadır.

3.1.1 diğer adlar

Diğer ad, bir komut için alternatif bir addır. Bir komut birden fazla diğer ada sahip olabilir ve özgün adı ve diğer tüm diğer adları birbirinin yerine kullanılabilir. Diğer ad yeniden atanabilir. Diğer ad bir öğedir (§ 3,3).

Diğer ad başka bir diğer ada atanabilir; Ancak, yeni diğer ad orijinal komutun diğer adı değildir.

Sağlayıcı diğer adı, yalnızca diğer adları temsil eden nesneleri içeren düz bir ad alanıdır. Değişkenlerin alt öğeleri yok.

Bazı diğer adlar PowerShell 'de yerleşik olarak bulunur.

Aşağıdaki cmdlet 'ler diğer adlarla ilgilenir:

  • New-Alias: bir diğer ad oluşturur
  • Set-Alias: bir veya daha fazla diğer ad oluşturur veya değiştirir
  • Get-Alias: bir veya daha fazla diğer ad hakkında bilgi alır
  • Export-Alias: bir dosyaya bir veya daha fazla diğer ad verir

Kullanılarak New-Alias komut için bir diğer ad oluşturulduğunda, bu komuta yönelik parametreler bu diğer ada eklenemez. Ancak, diğer ad: ad alanındaki bir değişkene doğrudan atama parametrelerin eklenmesine izin verir.

Not

Ancak, bu komutun istenen tüm parametrelerle birlikte çağrılmasını ve bu işleve bir diğer ad atamasını içeren bir işlev oluşturmak, ancak bu basit bir işlemdir.

Bir diğer adı temsil eden nesnenin türü § 4.5.4içinde açıklanmaktadır.

Diğer ad nesneleri sürücü diğer adında saklanır: (§ 3,1).

3.1.2 ortam değişkenleri

PowerShell ortam sağlayıcısı, işletim sistemi ortam değişkenlerinin alınmasını, eklenmesini, değiştirilmesini, silinmesini ve silinmesini sağlar.

Sağlayıcı ortamı yalnızca ortam değişkenlerini temsil eden nesneleri içeren düz bir ad alanıdır. Değişkenlerin alt öğeleri yok.

Ortam değişkeninin adı eşittir işaretini ( = ) içeremez.

Ortam değişkenlerinde yapılan değişiklikler yalnızca geçerli oturumu etkiler.

Ortam değişkeni bir öğedir (§ 3,3).

Bir ortam değişkenini temsil eden bir nesnenin türü § 4.5.6içinde açıklanmaktadır.

Ortam değişkeni nesneleri env: (§ 3,1) sürücüsünde depolanır.

3.1.3 dosya sistemi

PowerShell dosya sistemi sağlayıcısı dizin ve dosyaların oluşturulmasını, açılmasını, değiştirilmesini ve silinmesini sağlar.

Dosya sistemi sağlayıcısı, temel dosya sistemini temsil eden nesneleri içeren hiyerarşik bir ad alanıdır.

Dosyalar:, B:, C:, vb. gibi adlara sahip sürücülerde depolanır (§ 3,1). Dizin ve dosyalara yol gösterimi (§ 3,4) kullanılarak erişilir.

Bir dizin veya dosya bir öğedir (§ 3,3).

3.1.4 işlevleri

PowerShell işlev sağlayıcısı, işlevlerin (§ 8,10) ve filtrelerin (§ 8,10.) alınmasına, eklenmesine, değiştirilmesine, temizlendiğine ve silinmesine izin verir.

Sağlayıcı Işlevi yalnızca işlev ve filtre nesnelerini içeren düz bir ad alanıdır. Ne işlevleri ne de filtrelerin alt öğeleri yoktur.

İşlevlerde yapılan değişiklikler yalnızca geçerli oturumu etkiler.

Bir işlev bir öğedir (§ 3,3).

Bir işlevi temsil eden nesnenin türü § 4.5.10içinde açıklanmaktadır. Bir filtreyi temsil eden nesnenin türü § 4.5.11içinde açıklanmaktadır.

İşlev nesneleri sürücü Işlevinde saklanır: (§ 3,1).

3.1.5 değişkenleri

Değişkenler doğrudan PowerShell dilinde tanımlanabilir ve değiştirilebilir.

Sağlayıcı değişkeni, yalnızca değişkenleri temsil eden nesneleri içeren düz bir ad alanıdır. Değişkenlerin alt öğeleri yok.

Aşağıdaki cmdlet 'ler değişkenleriyle de ilgilenir:

Değişken bir öğe olduğu için (yaklaşık 3,3), Öğeyle ilgili cmdlet'ler tarafından iş olabilir.

Değişkeni temsil eden bir nesnenin türü ,4.5.3 içinde açıklanmıştır.

Değişken nesneleri Değişken: sürücüsünde depolanır (yaklaşık 3.1).

3.2 Çalışma konumları

Geçerli çalışma konumu, komutların işaret etmek için varsayılan konum olduğunu. Bu, bir komut çağrıldığında açık bir yol (yaklaşık 3.4) sağlanmazsa kullanılan konumdur. Bu konum geçerli sürücüyü içerir.

Bir PowerShell ana bilgisayarının birden çok sürücüsü olabilir; bu durumda her sürücünün kendi geçerli konumu vardır.

Dizin olmadan bir sürücü adı belirtilirse, o sürücünün geçerli konumu örtük olarak belirtilir.

Geçerli çalışma konumu bir yığına kaydedilebilir ve ardından yeni bir konuma ayarlanır. Daha sonra, kaydedilen konum bu yığından geri yüklenebilir ve geçerli çalışma konumu yapılır. İki tür konum yığını vardır: varsayılan çalışma konumu yığını ve sıfır veya daha fazla kullanıcı tanımlı çalışma konumu yığını. Bir oturum başladığında, varsayılan çalışma konumu yığını da geçerli çalışma konumu yığınıdır. Ancak, adlandırılmış herhangi bir çalışma konumu yığını, geçerli çalışma konumu yığını olabilir.

Aşağıdaki cmdlet'ler konumlarla ilgilenmektedir:

  • Konum-Ayarla: Geçerli çalışma konumunu kurulur
  • Get-Location: Belirtilen diskler için geçerli çalışma konumunu veya belirtilen yığınlar için çalışma konumlarını belirler
  • Push-Location: Geçerli çalışma konumunu belirtilen konum yığınının en üstüne kaydeder
  • Açılan Konum: Belirtilen konum yığınının en üstünde geçerli çalışma konumunu geri yükleme

Çalışma konumunu ve bir çalışma konumu yığınını temsil eden nesne türleri ,4.5.5.5'te açıklanmıştır.

3.3 Öğeler

Öğe , diğer ad (İs 3.1.1), değişken (İs 3.1.5), işlev (İs 3.1.4), ortam değişkeni (yaklaşık 3.1.2) veya bir dosya sistemi içinde bir dosya veya dizindir (yaklaşık 3.1.3).

Aşağıdaki cmdlet'ler öğelerle ilgilenmektedir:

Aşağıdaki cmdlet'ler öğelerin içeriğiyle ilgilenmektedir:

Dizini temsil eden bir nesnenin türü ,4.5.17 içinde açıklanmıştır. Dosyayı temsil eden bir nesnenin türü ,4.5.18 içinde açıklanmıştır.

3.4 Yol adları

PowerShell sağlayıcısı aracılığıyla erişilebilen bir veri deposuna ait tüm öğeler, yol adlarıyla benzersiz bir şekilde belirlenebilirsiniz. Yol adı , öğe adının, öğenin bulunduğu kapsayıcının ve alt kapsayıcıların ve kapsayıcıların üzerinden erişilen PowerShell sürücüsüyle bir birleşimidir.

Yol adları iki türe ayrılır: tam ve göreli. Tam yol adı, bir yolu tüm öğelerden oluşur. Aşağıdaki söz dizimi, tam yol adı olan öğeleri gösterir:

İpucu

Söz ~opt~ dizimi tanımlarında yer alan not, söz dizimsel varlığın söz dizimsinde isteğe bağlı olduğunu gösterir.

path:
    provider~opt~   drive~opt~   containers~opt~   item

provider:
    module~opt~   provider   ::

module:
    module-name   \

drive:
    drive-name   :

containers:
    container   \
    containers container   \

modül-adı , üst modülü ifade eder.

sağlayıcı , veri deposuna erişilen PowerShell sağlayıcısını ifade eder.

sürücü , belirli bir PowerShell sağlayıcısı tarafından desteklenen PowerShell sürücüsüne başvurur.

Bir kapsayıcıda başka kapsayıcılar olabilir ve bu kapsayıcılar başka kapsayıcılar içerebilir ve son kapsayıcı bir öğeye sahip olabilir. Kapsayıcılar, veri depolamada mevcut olduğu hiyerarşik sırada belirtilmelidir.

Yol adı örneği şu şekildedir:

E:\Accounting\InvoiceSystem\Production\MasterAccount\MasterFile.dat

Bir yol içinde son öğe başka öğeler içeriyorsa, bu bir kapsayıcı öğesidir; aksi takdirde bu bir yaprak öğedir.

Bazı durumlarda, tam yol adı gerekli değildir; göreli yol adı yeterli olacaktır. Göreli yol adı , geçerli çalışma konumunu temel alan bir addır. PowerShell, bir öğenin geçerli çalışma konumuyla ilgili konumu temel alarak tanımlarına izin verir. Göreli yol adı bazı özel karakterlerin kullanımını içerir. Aşağıdaki tabloda bu karakterlerin her biri açık ve göreli yol adları ile tam yol adları örnekleri verilmiştir. Tablodaki örnekler, C:\Windows olarak ayarlanmış geçerli çalışma dizinine Windows:

Sembol Açıklama Göreli yol Tam yol
. Geçerli çalışma konumu .\System C:\Windows\System
.. Geçerli çalışma konumunun üst öğesi ..\Program Files C:\Program Files
\ Geçerli çalışma konumunun sürücü kökü \Program Files C:\Program Files
yok Özel karakter yok System C:\Windows\System

Bir komutta yol adı kullanmak için bu adı tam veya göreli yol adı olarak girin.

Aşağıdaki cmdlet'ler yollarla ilgilenmektedir:

  • Yolu Dönüştürme: Bir yolu PowerShell yolundan PowerShell sağlayıcı yoluna dönüştürür
  • Birleştirme Yolu: Bir yolu ve alt yolu tek bir yolda birleştirir
  • Çözümle Yolu: Bir yol içinde joker karakterlerini çözümler
  • Bölünmüş Yol: Yolun belirtilen bölümünü döndürür
  • Test Yolu: Bir yolun öğelerinin var olup olmadığını veya yolun iyi uzıp uza olmadığını belirler

Bazı cmdlet'ler ( Ekle-İçerik gibi ) ve Copy-Item dosya filtrelerini kullanır. Dosya filtresi , bir yol kümesinden seçim ölçütlerini belirtme mekanizmasıdır.

Çözümlenen yolu temsil eden nesne türü ,4.5.5'te açıklanmıştır. Yollar genellikle dizeler olarak işlemesi gerekir.

3.5 Kapsamlar

3.5.1 Giriş

Ad bir değişkeni, işlevi, diğer adı, ortam değişkenlerini veya sürücüyü ifade eder. Aynı ad, bir betikte farklı yerlerdeki farklı öğeleri gösterir. Bir adın ifade olduğu her farklı öğe için bu ad yalnızca kapsamı olarak adlandırılan betik metninin bölgesi içinde görünür. Aynı adla ifade olunan farklı öğelerin farklı kapsamları veya farklı ad alanları vardır.

Kapsamlar iç içe geçmiş olabilir; bu durumda dış kapsam üst kapsam olarak adlandırılır ve iç içe geçmiş kapsamlar bu üst kapsamın alt kapsamlarıdır. Bir adın kapsamı, içinde tanımlandığı kapsam ve özel olmadığı sürece tüm alt kapsamlardır. Bir alt kapsam içinde, burada tanımlanan bir ad, üst kapsamlarda aynı adla tanımlanan tüm öğeleri gizler.

Noktalı kaynak notasyonu (yaklaşık 3.5.5) kullanılmadıkça, aşağıdakilerin her biri yeni bir kapsam oluşturur:

  • Betik dosyası
  • Betik bloğu
  • İşlev veya filtre

Aşağıdaki örneği inceleyin:

# start of script
$x = 2; $y = 3
Get-Power $x $y

#function defined in script

function Get-Power([int]$x, [int]$y)
{
if ($y -gt 0) { return $x * (Get-Power $x (--$y)) }

else { return 1 }
}
# end of script

Betikte oluşturulan $x değişkenlerin $y kapsamı, içinde tanımlanan işlev de dahil olmak üzere bu betiğin gövdesidir. İşlev Get-Power , aynı adlara sahip iki parametre tanımlar. Her işlevin kendi kapsamı olduğu için, bu değişkenler üst kapsamda tanımlananlardan farklıdır ve bunları üst kapsamdan gizler. İşlev kapsamı, betik kapsamında iç içe geçmiştir.

İşlevin kendisini tekrar tekrar çağıran bir işlev olduğunu unutmayın. Bunu her yaptığı zaman, her biri kendi değişkenleri ve olan başka bir iç içe geçmiş kapsam $x oluşturur $y.

İç içe geçmiş kapsamları ve adların yeniden kullanımı da gösteren daha karmaşık bir örnek şu şekildedir:

# start of script scope
$x = 2              # top-level script-scope $x created
                    # $x is 2
F1                  # create nested scope with call to function F1
                    # $x is 2
F3                  # create nested scope with call to function F3
                    # $x is 2

function F1 {       # start of function scope
                    # $x is 2
    $x = $true      # function-scope $x created
                    # $x is $true

    & {             # create nested scope with script block
                    # $x is $true
        $x = 12.345 # scriptblock-scope $x created
                    # $x is 12.345
    }               # end of scriptblock scope, local $x goes away

                    # $x is $true
    F2              # create nested scope with call to function F2
                    # $x is $true
}                   # end of function scope, local $x goes away

function F2 {       # start of function scope
                    # $x is $true
    $x = "red"      # function-scope $x created
                    # $x is "red"
}                   # end of function scope, local $x goes away

function F3 {       # start of function scope
                    # $x is 2
    if ($x -gt 0) {
                    # $x is 2
        $x = "green"
                    # $x is "green"
    }               # end of block, but not end of any scope
                    # $x is still "green"
}                   # end of function scope, local $x goes away
# end of script scope

3.5.2 Kapsam adları ve numaraları

PowerShell aşağıdaki kapsamları destekler:

  • Genel: Bu, en üst düzey kapsamdır. Tüm otomatik ve tercih değişkenleri bu kapsamda tanımlanır. Genel kapsam diğer tüm kapsamların üst kapsamıdır ve diğer tüm kapsamlar genel kapsamın alt kapsamlarıdır.

  • Yerel: Bu, bir betik, betik bloğu veya işlev içindeki herhangi bir yürütme noktasında geçerli kapsamdır. Herhangi bir kapsam yerel kapsam olabilir.

  • Betik: Bu kapsam, yürütülen her betik dosyası için mevcuttur. Betik kapsamı, içinde oluşturulan tüm kapsamların üst kapsamıdır. Betik bloğu kendi betik kapsamına sahip değildir; bunun yerine, betik kapsamı en yakın üst betik dosyasının kapsamıdır. Modül kapsamı diye bir şey yoktur ancak betik kapsamı eşdeğerini sağlar.

Adlar özel olarak bildir olabilir; bu durumda, alt kapsamlar için bile değil, üst kapsamlarının dışında görünmezler. Özel kavramı ayrı bir kapsam değildir; Yazılabilir bir konum olarak kullanılıyorsa, adı gizlemenin ek olduğu yerel kapsam için diğer addır.

Kapsamlar, bir kapsamın diğerine göreli konumunu açıklayan bir sayı tarafından başvurul olabilir. Kapsam 0 yerel kapsamı, kapsam 1 1 nesil üst kapsamı, kapsam 2 ise 2 nesil üst kapsamı ve bu şekilde devam ediyor. (Kapsam numaraları, değişkenleri yönlendiren cmdlet'ler tarafından kullanılır.)

3.5.3 Değişken adı kapsamı

Aşağıdaki üretimde gösterildiği gibi, altı farklı kapsamdan herhangi biri ile bir değişken adı belirtilebilir:

variable-scope:
    global:
    local:
    private:
    script:
    using:
    workflow:
    variable-namespace

Kapsam isteğe bağlıdır. Aşağıdaki tabloda, tüm olası bağlamlarda her biri anlamını gösterir. Ayrıca, açıkça bir kapsam belirtilmemişse kapsamı gösterir:

Kapsam Değiştiricisi Betik Dosyası Içinde Betik Bloğu içinde bir İşlevin içinde
global Genel kapsam Genel kapsam Genel kapsam
betik En yakın üst betik dosyasının kapsamı veya en yakın üst betik dosyası yoksa Genel En yakın üst betik dosyasının kapsamı veya en yakın üst betik dosyası yoksa Genel En yakın üst betik dosyasının kapsamı veya en yakın üst betik dosyası yoksa Genel
private Genel/Betik/Yerel kapsam Yerel kapsam Yerel kapsam
yerel Genel/Betik/Yerel kapsam Yerel kapsam Yerel kapsam
kullanma Uygulama tanımlı Uygulama tanımlı Uygulama tanımlı
iş akışı Uygulama tanımlı Uygulama tanımlı Uygulama tanımlı
yok Genel/Betik/Yerel kapsam Yerel kapsam Yerel kapsam

Değişken kapsamı bilgileri, 'de listelenen cmdlet ailesi kullanılarak da belirtilebilir (yaklaşık 3.1.5). Özellikle, daha fazla bilgi için parametresine Scopeve parametrelerine Option Private Option AllScope bakın.

Kapsam, using , veya bir inlinescript-statement içinde cmdlet'ler Start-Job``Invoke-Commandaracılığıyla betikler çalıştırırken başka bir kapsamda tanımlanan değişkenlere erişmek için kullanılır. Örneğin:

$a = 42
Invoke-Command --ComputerName RemoteServer { $using:a } # returns 42
workflow foo
{
    $b = "Hello"
    inlinescript { $using:b }
}
foo # returns "Hello"

Kapsam iş akışı, iş akışında tanımlanan bir değişkene erişmek için paralel deyim veya sequence-statement ile birlikte kullanılır.

3.5.4 İşlev adı kapsamı

Bir işlev adının dört farklı kapsamdan biri de olabilir ve bu adın görünürlüğü değişkenlerle aynıdır (yaklaşık olarak 3.5.3).

3.5.5 Noktalı kaynak

Bir betik dosyası, betik bloğu veya işlevi başka bir betik dosyasından, betik bloğundan veya işlevden yürütülürken, yürütülen betik dosyası yeni bir iç içe geçmiş kapsam oluşturur. Örneğin,

Script1.ps1
& "Script1.ps1"
& { ... }
FunctionA

Ancak, nokta kaynak notasyonu kullanılırken, komut yürütülmeden önce yeni kapsam oluşturulmaz, bu nedenle bunun yerine geçerli kapsamda kendi yerel kapsamına yapılacak eklemeler/değişiklikler yapılır. Örneğin,

. Script2.ps1
. "Script2.ps1"
. { ... }
. FunctionA

3.5.6 Modülleri

Üst düzey bir betik dosyasının hiyerarşik iç içe geçmiş kapsam ağacının kökünde olduğu gibi, her modülde de olduğu gibi (yaklaşık 3.14). Ancak, varsayılan olarak, içeri aktarma bağlamının içinde yalnızca bir modül tarafından dışarı aktaran adlar adıyla kullanılabilir. Import-Module cmdlet'inin Genel parametresi, dışarı aktarılmış adların görünürlüğün artmasına olanak sağlar.

3.6 Salt Okunur ve Sabit Özellikler

Değişkenler ve diğer adlar, bir dizi özellik içeren nesneler tarafından açıklanmıştır. Bu özellikler, cmdlet'lerden iki aile tarafından ayarlanır ve bunlar tarafından ağağlır (yaklaşık 3.1.5, %3.1.1). Bu tür bir özellik, Salt Okunur veya Sabit (Option parametresi kullanılarak) olarak ayarlanlan Options özelliğidir. ReadOnly olarak işaretlenmiş bir değişken veya diğer ad kaldırılabilir ve Force parametresi belirtiliyorsa özellikleri değiştirilebilir. Ancak Sabit olarak işaretlenmiş bir değişken veya diğer ad kaldırılamaz ve özellikleri değiştirilemez.

3.7 Yöntem aşırı yüklemeleri ve çağrı çözümlemesi

3.7.1 Giriş

,1'de belirtildiği gibi, yürütme ortamı tarafından kullanılabilir (ve PowerShell dışında bir dilde yazılmış) bir dış yordam yöntemi olarak çağrılır.

Bir yöntemin adı ve parametrelerinin sayısı ve türleri topluca bu yöntemin imzası olarak çağrılır. (İmza, yöntemin dönüş türünü içermez.) Yürütme ortamı, her biri farklı bir imzaya sahip olması şartıyla, bir türün aynı adla birden çok yöntemi olmasına izin verebilir. Bir yöntemin birden çok sürümü tanımlandığı zaman bu yöntemin aşırı yüklandığı kabulediliyor. Örneğin, Math (yaklaşık 4.3.8) Abstürü, belirtilen sayıdan birinin türünden biri olduğu belirtilen bir say ın mutlak değerini hesapan adlı bir yöntem kümesi içerir. Bu kümede yöntemleri aşağıdaki imzalara sahip:

Abs(decimal)
Abs(float)
Abs(double)
Abs(int)
Abs(long)
Abs(SByte)
Abs(Int16)

Bu durumda, tüm yöntemler aynı sayıda bağımsız değişkene sahip olur; imzaları yalnızca bağımsız değişken türüne göre farklılık gösterir.

Başka bir örnek, her dizinin başlangıcından başlayarak (varsayılan olarak) veya belirlenmiş bir öğeden başlayarak bir öğe aralığını bir diziden diğerine kopyalayıp Copy adlı bir yöntem kümesi içeren Dizi (varsayılan olarak) türünü içerir. Bu kümede yöntemleri aşağıdaki imzalara sahip:

Copy(Array, Array, int)
Copy(Array, Array, long)
Copy(Array, int, Array, int, int)
Copy(Array, long, Array, long, long)

Bu durumda imzalar bağımsız değişken türüne ve bazı durumlarda bağımsız değişken sayısına göre farklılık gösterir.

Aşırı yüklenmiş yöntemlere yapılan çağrıların çoğunda geçirilen bağımsız değişkenlerin sayısı ve türü aşırı yüklemelerden biri ile tam olarak eştir ve seçilen yöntem açıktır. Ancak bu durumda, hangi aşırı yüklenmiş sürümün (varsa) çağrıl olacağını çözmenin bir yolu olması gerekir. Örneğin,

[Math]::Abs([byte]10) # no overload takes type byte
[Array]::Copy($source, 3, $dest, 5L, 4) # both int and long indexes

Diğer örnekler tür dizesini (örneğin; System.String), çok sayıda aşırı yüklenmiş yöntemi vardır.

PowerShell, aşırı yüklenmiş bir imzayla tam olarak eşleşmeen yöntem çağrılarını çözümlemeye yönelik kurallara sahip olsa da, PowerShell aşırı yüklenmiş yöntemleri tanımlamak için bir yol sağlamaz.

Not

Düzenleyicinin Notu: PowerShell 5.0, betik tabanlı sınıflar tanımlama özelliği ekledi. Bu sınıflar aşırı yüklenmiş yöntemler içerebilir.

3.7.2 yöntemi aşırı yükleme çözümlemesi

Bağımsız değişken ifadelerinin listesini içeren bir yöntem çağrısı (§ 7.1.3) ve bir aday yöntemi kümesi (yani, çağrılabilir Yöntemler), en iyi yöntemi seçme mekanizmasına aşırı yükleme çözümlemesi denir.

Uygulanabilir aday yöntemler kümesi (§ 3.7.3) verildiğinde, bu küme içindeki en iyi yöntem seçilidir. Küme yalnızca bir yöntem içeriyorsa, bu yöntem en iyi yöntemdir. Aksi takdirde en iyi yöntem, § 3.7.4' de gösterilen kuralları kullanarak verilen bağımsız değişken listesine göre diğer tüm yöntemlerden daha iyi bir yöntemdir. Tüm diğer metotlardan daha iyi bir yöntem yoksa, yöntem çağırma belirsizdir ve bir hata bildirilir.

En iyi yöntem çağrıldığı bağlamda erişilebilir olmalıdır. Örneğin, bir PowerShell betiği özel veya korumalı bir yöntemi çağıramaz.

Statik metoda yapılan bir çağrı için en iyi yöntem statik bir yöntem olmalıdır ve bir örnek yöntemine yapılan çağrı için en iyi yöntem bir örnek yöntemi olmalıdır.

3.7.3 uygulanabilir yöntemi

Aşağıdakilerden biri doğru olduğunda bir yöntemin bir bağımsız değişken listesine göre geçerli olduğu söylenir:

  • İçindeki bağımsız değişkenlerin sayısı, yöntemin kabul ettiği parametrelerin sayısıyla aynıdır.
  • Yönteminde, h gerekli parametrelere ve N isteğe bağlı parametrelere sahip ve içindeki bağımsız değişkenlerin sayısı, A 'dan büyük veya buna eşit, ancak N ' den küçük.
  • Yöntemi, değişken sayıda bağımsız değişken kabul eder ve içindeki bağımsız değişkenlerin sayısı yöntemin kabul ettiği parametrelerin sayısından fazladır.

Uygun sayıda bağımsız değişkene sahip olmanın yanı sıra, içindeki her bağımsız değişken bağımsız değişkenin parametre geçirme moduyla eşleşmesi gerekir ve bağımsız değişken türü parametre türüyle eşleşmelidir veya bağımsız değişken türünden parametre türüne bir dönüştürme olmalıdır.

Bağımsız değişken türü ref ise (§ 4.3.6), karşılık gelen parametrenin de ref olması gerekir ve dönüştürme amacıyla bağımsız değişken türü ref bağımsız değişkeninden Özellik değerinin türüdür.

Bağımsız değişken türü ise ref , karşılık gelen parametresi yerine ref olabilir out .

Yöntem, değişken sayıda bağımsız değişken kabul ediyorsa, yöntem normal biçimde veya genişletilmiş biçimde uygulanabilir olabilir. İçindeki bağımsız değişkenlerin sayısı yöntemin kabul ettiği parametre sayısıyla özdeş ise ve son parametre bir dizi ise, form olası iki dönüşümden birinin derecesine bağlıdır:

  • İçindeki son bağımsız değişkenin türünden son parametrenin dizi türüne dönüştürme derecesi.
  • İçindeki son bağımsız değişkenin türünden son parametrenin dizi türünün öğe türüne dönüştürme derecesi.

İlk dönüştürme (dizi türüne) ikinci dönüşümden daha iyidir (dizinin öğe türüne), yöntem normal biçimde uygulanabilir, aksi takdirde genişletilmiş biçimde geçerlidir.

Parametrelerden daha fazla bağımsız değişken varsa, yöntem yalnızca genişletilmiş biçimde uygulanabilir. Genişletilmiş biçimde uygulanabilir olması için, son parametrenin dizi türünde olması gerekir. Yöntemi, içindeki her bir eşleşmeyen bağımsız değişken için hesap için yeterli parametrelerle değiştirilmiş olan eşdeğer bir yöntem ile değiştirilmiştir. Her ek parametre türü, özgün yöntemdeki son parametrenin dizi türünün öğe türüdür. Geçerli bir yöntem için yukarıdaki kurallar, bu yeni yönteme ve bağımsız değişken listesi A 'ya uygulanır.

3.7.4 daha iyi yöntem

Bir bağımsız değişken listesi ifadesi, bir bağımsız değişken ifadeleri { E~1~, E~2~, ..., E~N~ } ve iki uygulama yöntemi M~Q~ M~P~ ve parametre türleriyle { Q~1~, Q~2~, ..., Q~N~ } { P~1~, P~2~, ..., P~N~ } birlikte verildiğinin, M~P~ için M~P~ dönüştürmelerin birikimli derecelendirilmesine M~Q~ göre daha iyi bir yöntem M~Q~ olarak tanımlanmıştır.

Dönüştürmelerin birikimli sıralaması aşağıdaki şekilde hesaplanır. Her dönüştürmeye parametre E~1~ sayısına bağlı olarak, değer n E~2~ -1 değer 1 ' e inecek şekilde E~N~ farklı bir değere değer verilir. ' Dan ' a dönüştürme P~X~ E~X~ öğesinden E~X~ Q~X~ değerinden daha büyükse, M~P~ toplama n-x + 1; Aksi takdirde, n-x + 1 ' i M~Q~ biriktirir. M~Q~Aynı değere sahip ise M~P~ , sırasıyla aşağıdaki bağlama kuralları kullanılır:

  • Parametre türleri arasındaki dönüştürmelerin birikimli derecelendirmesi (bağımsız değişken türlerini yoksayarak), önceki derecelendirmelere benzer bir şekilde hesaplanır, bu nedenle P~1~ , ve karşısında,... ve ile Q~N~ P~N~ karşılaştırılır Q~1~ P~2~ Q~2~ . Bağımsız değişken $null ise veya parametre türleri sayısal tür değilse karşılaştırma atlanır. Aynı zamanda, bağımsız değişken dönüştürme E~X~ , ' a dönüştürüldüğünde bilgileri P~X~ kaybederse ancak ya da ' a dönüştürüldüğünde Q~X~ bilgi kaybedildiğinde karşılaştırma atlanır. Parametre dönüştürme türleri karşılaştırılabileceğinden, ' dan P~X~ ' a dönüştürme işlemi öğesinden P~X~ Q~X~ daha iyi Ise, toplama n-x + 1; Aksi takdirde, n-x + 1 ' i M~Q~ biriktirir. M~P~ Q~X~ Bu bağlama kuralı, dönüştürmelerde hiçbir bilgi kaybedilmeyen veya en genel yöntemi (örneğin, en büyük veri türleriyle parametrelere sahip olan yöntemi) tercih etmek üzere en belirli yöntemi (örneğin, en küçük veri türlerine sahip parametrelere sahip Yöntem) tercih etmek için tasarlanmıştır.
  • Her iki yöntem de genişletilmiş biçimini kullanıyorsa, daha fazla parametre içeren yöntem daha iyi bir yöntemdir.
  • Bir yöntem genişletilmiş form kullanıyorsa ve diğeri normal form kullanıyorsa, normal form kullanan yöntem daha iyi bir yöntemdir.

3.7.5 daha iyi dönüştürme

Aşağıdaki gibi işaretlenen metin Windows PowerShell özeldir.

Dönüştürmeler, en düşükten en yükseğe aşağıdaki şekilde derecelendirilir:

  • T~1~[]``T~2~[]ve T~2~ arasında T~1~ atanabilir dönüştürme olmadığı yere
  • T to String in any tür
  • T~1~``T~2~uygulama tanımlı bir şekilde özel dönüştürmeyi nerede T~1~ veya T~2~ tanımlama
  • T~1~``T~1~Için ıverblebleto T~2~ uygulayan
  • T~1~``T~2~ T~1~ yöntemi veya T~2~ uygulayan yöntemiT~2~ op_Implicit(T1)
  • T~1~``T~2~ T~1~ yöntemi veya T~2~ uygulayan yöntemiT~2~ op_Explicit(T1)
  • T~1~``T~2~burada T~2~ , türünde tek bir bağımsız değişken alan bir oluşturucuyu uygularT~1~
  • Aşağıdaki dönüşümlerden birini kullanabilirsiniz:
    • T T dizenin statik bir yöntem T Parse(string) uyguladığı veyaT Parse(string, IFormatProvider)
    • T~1~``T~2~ T~2~ her bir sabit listesi olduğu ve T~1~ dize ya da dizeye dönüştürülebilecekleri bir nesne koleksiyonu olduğunda
  • T her tür olduğu PSObject T için
  • Aşağıdaki dönüşümlerden herhangi biri: Language
    • T-bool T , herhangi bir sayısal tür
    • T T regex String, adsi wmisearcher wmi wmiclass adsisearcher ,,,, veyatype
    • T Hedef bool
    • T ~ 1 ~ Nullable[T~2~] bir dönüştürmenin T~1~ T~2~ varolduğu konum
    • T hükümsüz kılmak için
    • T~1~[]``T~2~[]ve T~2~ arasında T~1~ atanabilir bir dönüştürmenin bulunduğu konum
    • T~1~``T~2~[]nerede T~1~ bir koleksiyon olduğu
    • IDictionary Hedef Hashtable
    • T Hedef ref
    • T Hedef xml
    • scriptblock Hedef delegate
    • T~1~``T~2~ T~1~ , bir tam sayı türü ve T~2~ bir sabit listesi
  • $null``T T her tür bir değer türü
  • $null``Tnerede T herhangi bir başvuru türü olduğu
  • Aşağıdaki dönüşümlerden herhangi biri:
    • T T bayttanSByte

    • UInt16``Tnerede T SByte , byte , veyaInt16

    • Int16``Tnerede T SByte veyabyte

    • UInt32``Tnerede UInt16 T SByte byte Int16 ,,,, veyaint

    • int``Tnerede T SByte , byte Int16 ,, veyaUInt16

    • UInt64``Tnerede UInt16 SByte UInt32 T byte Int16 int ,,,,,, veyalong

    • long``Tnerede Int16 int T SByte byte UInt16 ,,,,, veyaUInt32

    • float``T T her tamsayı türü veyadecimal

    • double``T T her tamsayı türü veyadecimal

    • decimal``Ther tamsayı türü olduğu yere T

  • Aşağıdaki dönüşümlerden herhangi biri:
    • SByte``Tnerede T byte , uint6 UInt32 ,, veyaUInt64
    • Int16``Tnerede T UInt16 , UInt32 , veyaUInt64
    • int``Tnerede T UInt32 veyaUInt64
    • long Hedef UInt64
    • decimal``Tnerede T float veyadouble
  • Aşağıdaki dönüşümlerden herhangi biri:
    • T``string T her bir sayısal tür olduğu
    • T``char T her bir sayısal tür olduğu
    • string``T T her bir sayısal tür olduğu
  • Aşağıdaki dönüştürmelerde, bu dönüştürme atanabilir dönüştürmeler olarak kabul edilir:
    • byte``T Int16 single T int double UInt16 UInt32 long UInt64 ,,,,,,,, veyadecimal
    • SByte``T Int16 single T int double UInt16 UInt32 long UInt64 ,,,,,,,, veyadecimal
    • UInt16``T T int , long UInt32 ,, veya UInt64 , single double ,, veyadecimal
    • Int16``T T int , long UInt32 ,, veya UInt64 , single double ,, veyadecimal
    • UInt32``Tnerede double T long UInt64 single ,,,, veyadecimal
    • int``Tnerede double T long UInt64 single ,,,, veyadecimal
    • single Hedef double
  • T~1~``T~2~öğesinin T~1~ temel sınıfı veya arabirimi olduğu yerdir T~2~ . Bu dönüştürme atanabilir bir dönüştürme olarak kabul edilir.
  • string Hedef char[]
  • T to T -- Bu dönüştürme atanabilir bir dönüştürme olarak kabul edilir.

Formda T~1~ T~2~[] T~1~ bir dizi olmadığını ve başka bir dönüştürmenin uygulanacağı her dönüştürme için, 'den'e dönüştürme varsa, T~2~``T~1~ T~2~``T~1~ T~1~ dönüştürmenin sıralaması , olan dönüştürmeden daha kötüdür, ancak ile arasında dönüştürmeden daha düşük dereceli herhangi bir dönüştürmeden daha iyidirT~2~

3.8 Ad arama

Farklı türlerde komutların aynı adı olması mümkündür. Böyle bir durumda ad aramanın sırası alias, function, cmdlet ve external komutudur.

3.9 Tür adı arama

Varsayılan olarak ,7.1.10 şu deyimi içerir: " Tür-değişmez-sabiti , belirtilmeyen bazı temel türler tarafından bir uygulamada temsil edildi. Sonuç olarak, tür adı temel türü için bir eş anlamlıdır." , , long[]ve inttürlerine doubleörnektirHashtable.

Tür adları aşağıdaki gibi eştir: Verilen tür adını int , long, double gibi yerleşik tür hızlandırıcıları listesiyle karşılaştırın. Eşleşme bulunursa tür bu şekildedir. Aksi takdirde, tür adının tam olduğunu varsayın ve konak sisteminde böyle bir türün mevcut olup olamay olduğunu kontrol eder. Eşleşme bulunursa tür bu şekildedir. Aksi takdirde ad alanı ön eklerini ekleyin System.. Eşleşme bulunursa tür bu şekildedir. Aksi takdirde tür adı hata verir. Bu algoritma, genel türler için her tür bağımsız değişkeni için uygulanır. Ancak, arity (bir işlev veya işleç tarafından alınan bağımsız değişken veya işlenen sayısı) belirtmenize gerek yoktur.

3.10 Otomatik bellek yönetimi

Çeşitli işleçler ve cmdlet'ler, dizeler ve diziler gibi başvuru türü nesneler için bellek ayırmaya neden olur. Bu belleği ayırma ve serbest yükleme, PowerShell çalışma zamanı sistemi tarafından yönetilir. Diğer bir ifadeyle, PowerShell otomatik çöp toplama sağlar.

3.11 Yürütme sırası

Yan etki , bir komutun yürütme ortamının durumunun değişmesidir. Bir değişkenin değerinde yapılan bir değişiklik (atama işleçleri veya ön ve son artırma ve azaltma işleçleri aracılığıyla), bir dosyanın içeriğinde yapılan bir değişiklik gibi bir yan etkidir.

Aksi belirtilmedikçe deyimler sözcük sırasıyla yürütülür.

Bazı işleçler için belirtilenler dışında, bir ifadede terimlerin değerlendirilme sırası ve yan etkilerin hangi sırada olduğu belirtilmez.

Komut çağıran bir ifade, komutun hangi ifadeye ait olduğunu ve değerlerinin bu komuta geçirilemesi için bağımsız değişkenlerin ne olduğunu ifade eden sıfır veya daha fazla ifadeyi içerir. Bu ifadelerin birbirine göre değerlendirilme sırası belirtilmemiştir.

3.12 Hata işleme

Bir komut başarısız olduğunda bu bir hata olarak kabul edilir ve bu hatayla ilgili bilgiler türü belirtilmeyen bir hata kaydına kaydedilir (...)4.5.15); ancak, bu tür alt simge oluşturmayı destekler.

Hata iki kategoriye ayrılır. işlemi sonlandırılır (sonlandırıcı bir hata) veya sonlandırmaz (sonlandırıcı olmayan bir hata). Sonlandırıcı bir hatayla hata kaydedilir ve işlem durur. Sonlandırıcı olmayan bir hatayla hata kaydedilir ve işlem devam eder.

Sonlandırıcı olmayan hatalar hata akışına yazılır. Bu bilgiler bir dosyaya yönlendirilse de, hata nesneleri önce dizelere dönüştürülür ve bu nesnelerdeki önemli bilgiler yakalanmaz ve bu da tanılamayı zorlaştırarak imkansız değildir. Bunun yerine, hata metni yeniden yönlendirilebilir (yaklaşık 7.12) ve içinde olduğu gibi bir değişkene kaydedilen hata nesnesi $Error1 = command 2>&1.

Otomatik değişken, $Error son hataları temsil eden bir hata kayıtları koleksiyonu içerir ve en son hata içindedir $Error[0]. Bu koleksiyon, yeni kayıtlar eklendiklerine eski kayıtların atılacak şekilde bir arabellekte korunur. Otomatik değişken $MaximumErrorCount depolanmış kayıt sayısını kontrol eder.

$Error tek bir koleksiyonda birlikte karıştırılmış tüm komutlardan gelen tüm hataları içerir. Belirli bir komuttan hataları toplamak için, koleksiyonu tutmak için kullanıcı tanımlı değişkenin belirtilmemiş olması için ErrorVariable ortak parametresini kullanın.

3.13 Pipelines

İşlem hattı , her biri kanal işleciyle | (U+007C) ayrılmış bir veya daha fazla komut dizisidir. Her komut, öncülünden giriş alır ve çıkışı onun ardılına yazar. İşlem hattının sonundaki çıkış atılmış veya bir dosyaya yönlendirilen sürece, standart çıkışa yazmayı seçen konak ortamına gönderilir. İşlem hattında yer alan komutlar bağımsız değişkenlerden de girişler alır. Örneğin, verilen Get-ChildItem``Sort-Object``Process-Filebir dosya sistemi dizininde dosya adları listesi oluşturmak, bir metin kaydı kümesi sıralamak ve bir metin kaydı üzerinde sırasıyla bazı işlemler gerçekleştirmek için , ve komutlarının aşağıdaki kullanımını göz önünde bulundurabilirsiniz:

Get-ChildItem
Get-ChildItem e:*.txt | Sort-Object -CaseSensitive | Process-File >results.txt

İlk durumda, geçerli Get-ChildItem /varsayılan dizinde dosyaların adlarının bir koleksiyonunu oluşturur. Bu koleksiyon, varsayılan olarak her öğenin değerini standart çıkışa yazan konak ortamına gönderilir.

İkinci durumda, bağımsız Get-ChildItem değişken kullanarak belirtilen dizinde dosyaların adlarının bir koleksiyonunu oluşturur e:*.txt. Bu koleksiyon komutuna yazılır Sort-Objectve varsayılan olarak bunları büyük/büyük/büyük harfe duyarlı artan düzende sıralar ( CaseSensitive bağımsız değişkeni sayesinde). Sonuçta elde edilen koleksiyon, bazı (bilinmeyen Process-File) işlemleri gerçekleştiren komutuna yazılır. Bu komutun çıktısı daha sonra dosyasına yeniden yönlendirildi results.txt.

Komut tek bir nesne yazarsa, onun ardılı bu nesneyi alır ve ardından kendi nesnelerini ardıllarına yazdıktan sonra sonlandırılır. Ancak, bir komut birden çok nesne yazarsa, nesne başına bir kez yürütülen ardıl komutuna tek tek teslim edilirler. Bu davranışa akış denir. Akış işlemede, nesneler kullanılabilir hale geldiğinde işlem hattında yazılır, koleksiyonun tamamı üretilsin değil.

Bir koleksiyonu işlerken, ilk öğeden önce ve son öğeden sonra özel işlem yapacak şekilde bir komut yazabilirsiniz.

3.14 Modülleri

Modül , PowerShell kodunun bölümleme, düzenleme ve soyutlama olanaklarını sağlayan kendi içinde yeniden kullanılabilir bir birimdir. Bir modül, tek bir birim olarak kullanılan komutları (cmdlet'ler ve işlevler gibi) ve öğeleri (değişkenler ve diğer adlar gibi) içerebilir.

Bir modül oluşturulduktan sonra, içindeki komutlar ve öğeler kullanılmadan önce bir oturuma aktarılmış olması gerekir. Komutlar ve öğeler, içe aktarıldıktan sonra yerel olarak tanımlanmış gibi davranır. Bir modül komutuyla açıkça içe aktarılır Import-Module . Bir modül, uygulama tanımlı bir şekilde belirlenecek şekilde otomatik olarak da içe aktarılmış olabilir.

Modülü temsil eden bir nesnenin türü ,4.5.12 içinde açıklanmıştır.

Modüller , 11 içinde ayrıntılı olarak ele alınmıştır.

3.15 Joker karakter ifadeleri

Joker karakter ifadesi aşağıdaki öğelerden sıfır veya daha fazlasını içerebilir:

Öğe Açıklama
*, ?veya [ dışında bir karakter Bu tek karakterle eşler
* Sıfır veya daha fazla karakterle eşler. * karakteriyle eşleşmek için [*] kullanın.
? Tek bir karakterle eşler. Bir ? ile eşleşmesi için karakter, [?] kullanın.
[set]

Kümedeki boş olamaz tek bir karakterle eşler.

Küme ] ile başlıyorsa, bu sağ köşeli ayraç kümenin bir parçası olarak kabul edilir ve sonraki sağ köşeli ayraç kümeyi sonlandırılır; aksi takdirde, ilk sağ köşeli ayraç kümeyi sonlandırılır.

Küme - ile başlıyor veya bitiyorsa, bu kısa çizgi-eksi kümenin bir parçası olarak kabul edilir; aksi takdirde, kısa çizginin her iki tarafındaki karakterlerin kapsayıcı aralık sınırlayıcıları olduğu ardışık Unicode kod noktaları aralığını gösterir. Örneğin, A-Z 26 büyük İngilizce harfleri, 0-9 ise 10 ondalık basamağı gösterir.

Not

Açık Grup Temel Belirtimleri : Desen Eşleştirme", IEEE Std 1003.1, 2004 Edition. Ancak PowerShell'de kaçış karakteri ters eğik çizgi değil, ters eğik çizgidir.

3.16 Normal ifadeler

Normal ifade aşağıdaki öğelerden sıfır veya daha fazlasını içerebilir:

Öğe Açıklama
., [, ^, *, $veya \ dışında bir karakter Bu tek karakterle eşler
. Tek bir karakterle eşler. Bir ile eşleşmesi için. karakter, kullanın \..
[set]
[^set]

[set] formu, kümedeki herhangi bir karakterle eştir. [^set] formu, kümedeki hiçbir karakterle eşleşmez. set boş olamaz.

Ayarla ] veya ^] ile başlıyorsa, bu sağ köşeli ayraç ayarlanan bir parçası olarak değerlendirilir ve sonraki sağ köşeli ayraç kümeyi sonlandırır; Aksi halde, ilk sağ köşeli ayraç kümeyi sonlandırır.

Eğer Ayarla -veya ^-ile başlıyorsa ya da ile bitiyorsa, bu tire eksi, kümesininbir parçası olarak kabul edilir; Aksi takdirde, bir ardışık Unicode kod noktası aralığını, noktalı çizgiden sonra dahil edilen Aralık sınırlayıcıları olacak şekilde gösterir. Örneğin, A-Z 26 büyük harf Ingilizce harflerini gösterir ve 0-9, 10 ondalık basamağı gösterir.

* Önceki öğenin daha fazla tekrarlarından oluşan sıfırdan eşleşir.
+ Önceki öğenin daha fazla oluşumlarından biriyle eşleşir.
? Önceki öğenin bir tekrarlarının sıfırdan eşleşir.
^ Dizenin başlangıcında eşleşir. Bir ^ karakteri eşleştirmek için kullanın \^ .
$ Dizenin sonunda eşleşir. Bir $ karakteriyle eşleştirmek için $ kullanın.
\, Ckarakterini çıkar, bu nedenle normal ifade öğesi olarak tanınmaz.

Windows PowerShell: Microsoft .NET Framework normal ifadelerinde bulunan karakter sınıfları aşağıdaki gibi desteklenir:

Öğe Açıklama
\p{name} Ada göre belirtilen adlandırılmış karakter sınıfındaki herhangi bir karakterle eşleşir. Desteklenen adlar, Unicode gruplarıdır ve ll, ND, Z, Isyunan ve ıboxdrawing gibi blok aralıkları vardır.
\P{name} Ad' da belirtilen gruplara ve blok aralıklarına dahil edilen metinle eşleşir.
\w Sözcük olan herhangi bir karakterle eşleşir. Unicode karakter kategorilerine [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}] eşdeğerdir. ECMAScript seçeneği ile ECMAScript uyumlu davranış belirtilmişse, \w ile eşdeğerdir [a-zA-Z_0-9] .
\W Sözcük olmayan herhangi bir karakterle eşleşir. Unicode kategorilerine [\^\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}] eşdeğerdir.
\s Herhangi bir boşluk karakteriyle eşleşir. Unicode karakter kategorilerine [\f\n\r\t\v\x85\p{Z}] eşdeğerdir.
\S Boşluk olmayan herhangi bir karakterle eşleşir. Unicode karakter kategorilerine [\^\f\n\r\t\v\x85\p{Z}] eşdeğerdir.
\d Herhangi bir ondalık basamakla eşleşir. \p{Nd}Unicode ve [0-9] Unicode olmayan davranış için eşdeğer.
\D Tüm basamaksız eşleşir. \P{Nd}Unicode ve [\^0-9] Unicode olmayan davranış için eşdeğer.

Microsoft .NET Framework normal ifadelerinde bulunan nicelik belirteçleri aşağıdaki gibi desteklenir:

Öğe Açıklama
* Sıfır veya daha fazla eşleşme belirtir; Örneğin, \w* veya (abc)*. ile {0,} eşdeğerdir.
+ Önceki karakterlerin yinelenen örnekleriyle eşleşir.
? Sıfır veya bir eşleşme belirtir; Örneğin, \w? veya (abc)? . İle {0,1} eşdeğerdir.
{n} Tam olarak n eşleşme belirtir; Örneğin, (pizza){2} .
{n,} En az n eşleşme belirtir; Örneğin, (abc){2,} .
{n,m} En az n, ancak en fazla d, eşleşme belirtir.