所以我有这个脚本根据它的位置在我们的dr服务器上创建一个快照镜像。以下只是脚本的一小部分。我需要写一个if语句,所以如果location ='uk'则不运行下面的函数,否则如果location ='us'则创建snap-mirror。
function Create-SnapMirror {
[CmdletBinding(PositionalBinding=$false,
HelpUri='http://www.microsoft.com/',
ConfirmImpact='Medium')]
[OutputType([Boolean])]
Param(
[Parameter(Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
ValueFromRemainingArguments=$false,
Position=0)]
[ValidateNotNull()]
[ValidateNotNullOrEmpty()]
[String]$SourcePath,
[Parameter(Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
ValueFromRemainingArguments=$false,
Position=1)]
[ValidateNotNull()]
[ValidateNotNullOrEmpty()]
[String]$DestinationPath,
[Parameter(Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
ValueFromRemainingArguments=$false,
Position=2)]
[ValidateNotNull()]
[ValidateNotNullOrEmpty()]
[String]$LogName
)
$success = $null
$error.Clear()
}
答案 0 :(得分:1)
假设在函数之外需要逻辑,你可以通过简单地在if语句中封装函数调用来实现这一点,如下所示:
if($Location -eq 'us') { Create-SnapMirror -SourcePath $MySourcePath -DestinationPath $MyDestinationPath -LogName $MyLogName }
但是,如果要检查函数中的位置,首先需要从输入参数或其他方法接收位置。假设您在名为$ Location的变量中有位置,您可以在任何其他操作之前在函数中添加以下内容:
if($Location -ne 'us') { return }
这将退出该功能;您可以添加其他操作,例如在括号内记录。