需要帮助在PowerShell中编写if语句

时间:2016-11-09 22:31:22

标签: powershell

所以我有这个脚本根据它的位置在我们的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()
}

1 个答案:

答案 0 :(得分:1)

假设在函数之外需要逻辑,你可以通过简单地在if语句中封装函数调用来实现这一点,如下所示:

if($Location -eq 'us') { Create-SnapMirror -SourcePath $MySourcePath -DestinationPath $MyDestinationPath -LogName $MyLogName }

但是,如果要检查函数中的位置,首先需要从输入参数或其他方法接收位置。假设您在名为$ Location的变量中有位置,您可以在任何其他操作之前在函数中添加以下内容:

if($Location -ne 'us') { return }

这将退出该功能;您可以添加其他操作,例如在括号内记录。