You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell函数返回值异常求助:返回值不符合预期

问题分析

你的问题根源在于PowerShell的输出流特性:Invoke-Command会收集远程脚本块内所有未被抑制的输出,而New-Item默认会返回创建的目录对象,这个输出会和你最后通过Write-Output返回的$createFolderResult一同被返回。因为目录对象的输出会被优先捕获,最终导致$serverResult拿到的是$Destination对应的目录对象,而非你预期的空字符串或错误信息。

解决方案

核心是抑制New-Item的默认输出,确保只有你定义的$createFolderResult被作为返回值输出。以下是三种可行的抑制方式:

方式1:重定向输出到$null

修改New-Item执行行:

New-Item -ItemType directory -Path $Destination > $null

方式2:使用[void]强制丢弃输出

[void](New-Item -ItemType directory -Path $Destination)

方式3:添加-OutVariable null参数

New-Item -ItemType directory -Path $Destination -OutVariable null
修改后的完整函数代码
####################
### CreateFolder ###
####################
function CreateFolder {
    Invoke-Command -Session $session -ArgumentList $Destination, $serv -ScriptBlock {
        param (
            [string] $Destination,
            [string] $serv
        )
        
        [string] $createFolderResult = ''
        
        try {
            if (-not ($Destination | Test-Path)) {
                Write-Host "INFO : Création du répertoire suivant en cours (fonction CreateFolder)... :" $Destination
                # 抑制New-Item的输出,避免干扰返回值
                New-Item -ItemType directory -Path $Destination > $null
                Write-Host "INFO : La création du répertoire a été réalisée avec succès (fonction CreateFolder):" $Destination
            } else {
                Write-Host "INFO : Le répertoire :" $Destination "existe déjà (fonction CreateFolder)!"
            }
        } catch {
            Write-Host "ERREUR : La création du répertoire n'a pas fonctionné (fonction CreateFolder) : "$_
            $createFolderResult = $serv +" : ERREUR : La création du répertoire n'a pas fonctionné (fonction CreateFolder) : " +$_
        }
        
        Write-Output $createFolderResult
    }
}
额外提示

PowerShell中,函数或脚本块的返回值是所有未被捕获的输出的集合,而非仅return或Write-Output指定的内容。任何命令的默认输出如果不做处理,都会混入最终的返回结果,这是PowerShell新手常见的误区。

内容的提问来源于stack exchange,提问作者Flincorp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 08:23:22