2014-07-09 23 views
7

Bir PowerShell işlevinde bir değişkeni nasıl artırırım. Aşağıdaki örneği, işleve giriş yapacak herhangi bir veri olmadan kullanıyorum. Elde etmek istediğim şey, bir fonksiyonun her defasında $ incre değişkeninin eklendiği bir değişken çağrıldığında her defasında bir değişkeni arttırmaktır ve daha sonra komut tamamlandığında $ incre toplamını gösterir. Ben isteyen pm sonuç 4 kez çalıştırıldıktan fonksiyon comparethis olarak 4'tür ve her seferinde $ artışlarla Bir dinamik içine çalıştıran 1.PowerShell'de bir değişkeni işlevler içinde artırın

$incre = 0 

function comparethis() { 
    #Do this comparison 

    $incre++ 
    Write-Host $incre 
} 

comparethis #compare 2 variables 
comparethis #compare 2 variables 
comparethis #compare 2 variables 
comparethis #compare 2 variables 

Write-Host "This is the total $incre" 

cevap

18

göre artırılabilir edildiğinde aşağıda çalışan toplam 0 kapsam belirleme. Bakınız about_scopes. Fonksiyonun içinde $ incre tanımlanmadığı için global kapsamdan kopyalanır. Genel $ incre değiştirilmedi. Eğer değiştirmek isterseniz, aşağıdakileri yapabilirsiniz.

$incre = 0 

function comparethis() { 
    #Do this comparison 

    $global:incre++ 
    Write-Host $global:incre 
} 

comparethis #compare 2 variables 
comparethis #compare 2 variables 
comparethis #compare 2 variables 
comparethis #compare 2 variables 

Write-Host "This is the total $incre" 
+1

Yukarıdaki örnekte, '$ incre' değişkenini genel değişken yerine bir komut dosyası düzeyi değişkeni olarak kullanmak istediğiniz olasıdır. Bu durumda, '$ Script: incre' yerine' $ Global: incre' kullanmalısınız. – gerard

İlgili konular