2017-04-11 48 views
1

我儘量讓這個腳本工作

Function test_var 
{$return = 0 
foreach ($arg in $args) 
{ 
if (!$arg) {(Write-Host "ERROR : $arg.Name Missing variable" -ForegroundColor Red -BackgroundColor Black) 
$return = 1} 
} 
return $return 
} 

當我的功能工作正確地調用帶參數的

test_var "c" "$b" "$a" 

的功能,但我不能顯示實際的名稱$arg,因爲該值爲空。

+1

你的問題有點不清楚。預期的產出是什麼?你實際看到了什麼? –

+0

$ a =「test1」$ b =「test2」#$ c =「test3」 –

+0

我需要看到錯誤:$ C丟失變量我有那些在anather文本文件中聲明的varriable,但實際上我可以看到錯誤:.Name缺少變量 –

回答

2

像Mathias在他的評論中提到的,你的問題有點不清楚。但是:

PowerShell已經有一個內置的機制來驗證參數。考慮爲你的函數使用預定義的參數,而不是使用$args。在下面的例子中,參數$a強制性$b是可選的:

function Test-Var 
{ 
    Param 
    (
     [Parameter(Mandatory=$true)] 
     $a, 

     [Parameter(Mandatory=$false)] 
     $b 
    ) 

}