我有两个powershell脚本,一个具有检查变量值的功能" name"它作为参数传递。如果它与“John”不匹配,则结果为2,否则,结果为0(包含在函数中)。
这是函数脚本:
Function test {
Param (
$name = $(throw "need -name"),
$result = 0
)
Process {
if($name -ne "John") {
Write-Host "Name is incorrect"
$result = 2
} else {
Write-Host "Student is correct"
}
}
}
第二个脚本调用此函数并以 -
运行Import-Module C:\function.ps1
test -name Sandra
现在我想将结果(或状态)返回到函数的第二个脚本中,并根据结果在第二个脚本中添加更多条件。要实现此目的,脚本或函数需要进行哪些更改?
答案 0 :(得分:3)
好像你是PowerShell的新手,所以这里有一些提示:
Test-StudentName
。所以你的脚本看起来像这样:
function Test-StudentName
{
[CmdletBinding()]
[OutputType([int])]
Param
(
[Parameter(Mandatory=$true, Position=0)]
[ValidateNotNullOrEmpty()]
[string]
$Name
)
if ($name -ne 'John')
{
Write-Output 2
}
else
{
Write-Output 0
}
}
答案 1 :(得分:1)
<#
.Synopsis
Short description
.DESCRIPTION
Long description
.EXAMPLE
Example of how to use this cmdlet
.EXAMPLE
Another example of how to use this cmdlet
#>
function Test-Name
{
[CmdletBinding()]
[Alias()]
[OutputType([int])]
Param
(
# Parameter Name help description
[Parameter(Mandatory=$true,
ValueFromPipelineByPropertyName=$true,
Position=0)]
[string]
$Name
)
Begin
{
}
Process
{
if($name -ne "John") {
Write-Host "Name is incorrect"
2
}
else {
Write-Host "Student is correct"
0
}
}
End
{
}
}
然后你&#34;点源&#34;
Windows PowerShell
Copyright (C) 2015 Microsoft Corporation. All rights reserved.
PS C:\Users\joshua> cd .\Desktop\
PS C:\Users\joshua\Desktop> . .\Test-Name.ps1
PS C:\Users\joshua\Desktop> Test-Name -Name Sandra
Name is inccorrect
2
&#34;点源&#34;部分是&#34;。 \试验Name.ps1&#34 ;.或者你可以将文件保存为.psm1 - 这将是创建模块最简单的方法 - 并导入它
PS 虽然在powershell版本5中没有那么多,但强烈建议不要使用Write-Host