Powershell 以参数为条件

Powershell 以参数为条件,powershell,Powershell,我正在通过az模块从Azure收集用户,并希望根据所选的输出类型编写一个条件。如果用户输出为.csv,它将从json转换数据并导出csv。如果它们输出任何其他类型,它只输出文件。问题是它只是跳过了检查它是否是csv function Get-AzureUsers { [CmdletBinding()] Param( [Parameter(Mandatory=$false)][String]$OutFile = $null) $split =

我正在通过
az
模块从Azure收集用户,并希望根据所选的输出类型编写一个条件。如果用户输出为.csv,它将从json转换数据并导出csv。如果它们输出任何其他类型,它只输出文件。问题是它只是跳过了检查它是否是csv

function Get-AzureUsers 
{

    [CmdletBinding()]
     Param(
        [Parameter(Mandatory=$false)][String]$OutFile = $null)    

    $split = $OutFile.Split(".")
    $type = $split[1]
    $name = $split[0]
    If($type -eq "csv")
    {
        $i=az ad user list -o json | ConvertFrom-Json
        $i | export-csv $OutFile
    } 
    else
    {
        If($Outfile)
        {
         $i=az ad user list -o table | Out-File $OutFile
        }
        else 
        {
        #az ad user list -o yaml
        }

}

您是否尝试设置断点以查看发生了什么?我调用了你的函数
getazureusers-OutFile'c:\test.csv'
,它进入了你的状态。你正在保存的路径中是否也有点?这可能会对您当前的实现造成问题。使用
$type=$split[-1]
确保它始终使用扩展名(因为如果路径为:c:\My.Folder\test.csv,$split[1]将不起作用)啊,就是这样,它运行在一个带有空格的目录中。非常感谢。