2017-04-11 58 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 
    ) 

}