我创建了一个非常简单的HelloWorld.ps1
Power-shell脚本,该脚本接受Name
参数,验证其长度,然后打印一个问候消息,例如,如果您将John
传递给{{{ 1}},它应该打印Name
。
但每次执行它时都会出现奇怪的行为:
Hello John!
个参数。Name
的文件,不带任何扩展名。这是Power-shell脚本:
10
以下是执行它的命令:
param (
[parameter(Mandatory=$true)]
[string]
$Name
)
# Length Validation
if ($Name.Length > 10) {
Write-Host "Parameter should have at most 10 characters."
Break
}
Write-Host "Hello $Name!"
我的剧本有什么问题?
答案 0 :(得分:5)
实际上>
是output redirection operator,它将左操作数的输出发送到右操作数中的指定文件。
例如,.\HelloWorld.ps1 -Name "John"
会在名为$Name.Length > 10
的文件中输出Name
的长度。
如何验证字符串长度?
您可以-gt
这样使用greater than operator:
10
字符串参数长度验证的更好选项
您可以这样使用[ValidateLength(int minLength, int maxlength)]
属性:
if($Name.Length -gt 10)