Rez*_*aei 0 powershell cmdlets cmdlet
我创建了一个非常简单的HelloWorld.ps1Power-shell脚本,该脚本接受一个Name参数,验证其长度,然后打印一个hello消息,例如,如果您传递Johnas Name,则应该打印该消息Hello John!。
但是奇怪的行为是我每次执行它时:
Name长度超过10个字符的参数。10没有任何扩展名的文件。这是Power-shell脚本:
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!"
Run Code Online (Sandbox Code Playgroud)
这是执行它的命令:
.\HelloWorld.ps1 -Name "John"
Run Code Online (Sandbox Code Playgroud)
我的脚本有什么问题?
实际上>是输出重定向运算符,它将左操作数的输出发送到右操作数中的指定文件。
例如,$Name.Length > 10将Name在名为的文件中输出的长度10。
如何验证字符串长度?
if($Name.Length -gt 10)
Run Code Online (Sandbox Code Playgroud)
字符串参数长度验证的更好选择
您可以通过[ValidateLength(int minLength, int maxlength)]以下方式使用属性:
param (
[ValidateLength(1,10)]
[parameter(Mandatory=$true)]
[string]
$Name
)
Write-Host "Hello $Name!"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3920 次 |
| 最近记录: |