PowerShell'de komut dosyası kapsamındaki bir değişkenin varlığını sınamak mümkün mü?PowerShell'de bir komut dosyası kapsamındaki değişkenin varlığı nasıl test edilir?
Ben PowerShell Community Extensions (PSCX) ama Set-PSDebug -Strict
ayarlanır sırasında modülü içe eğer bir hata üretilir fark ettik kullanıyorum:
The variable '$SCRIPT:helpCache' cannot be retrieved because it has not been set.
At C:\Users\...\Modules\Pscx\Modules\GetHelp\Pscx.GetHelp.psm1:5 char:24
bunu düzeltmek nasıl araştırırken buldum bu kod parçası Pscx.GetHelp.psm1:
#requires -version 2.0
param([string[]]$PreCacheList)
if ((!$SCRIPT:helpCache) -or $RefreshCache) {
$SCRIPT:helpCache = @{}
}
Bu oldukça düz ileri koddur; Önbellek yoksa veya yenilenmesi gerekiyorsa, yeni ve boş bir önbellek oluşturun. Sorun şu ki, $SCRIPT:helpCache
, Set-PSDebug -Strict
etkinken, değişkenin henüz tanımlanmadığı için hatayı düzeltiyor.
İdeal olarak, bir Test-Variable
cmdlet'ini kullanabilirdik ama böyle bir şey mevcut değil! variable:
sağlayıcısına bakmayı düşündüm ama bir değişkenin kapsamını nasıl belirleyeceğimi bilmiyorum.
Bu yüzden sorum şu: Bir hatanın nedenini test etmek için Set-PSDebug -Strict
'un geçerli olup olmadığını nasıl test edebilirim, bir hataya neden olmadan?
PowerShell 2.0 kullanıyorsanız, olası ek sorunları yakalayacağından 'Set-StrictMode -version 2.0' kullanmanızı öneririz. –