如何使用Powershell在单行中读取单个字段的多行数据?

如何使用Powershell在单行中读取单个字段的多行数据?,powershell,Powershell,我正在尝试使用Powershell中的select query获取数据:- 获取团队|选择$.DisplayName,$.Description 数据格式如下:- 显示名称:MSTeam2 描述:通过PSScript创建的团队 add description by hitting enter and new line but changed any privacy 由于用户在编写说明时

我正在尝试使用Powershell中的select query获取数据:-

获取团队|选择$.DisplayName,$.Description

数据格式如下:-

显示名称:MSTeam2

描述:通过PSScript创建的团队

           add description by hitting enter
                                
           and new line but changed any privacy
由于用户在编写说明时“输入关键点”,说明以多行形式出现。 我想用这样一行字来读:-

显示名称:MSTeam2

描述:通过PSScript创建的团队通过点击回车和新行添加描述,但更改了任何隐私

我尝试过Replace()和-join,但它不起作用。
请对此提供帮助。

您可以使用Split&Join或replace语句,其工作原理应该相同


# Split & Join
$Team.Description.Split([System.Environment]::NewLine) -join ''

# Replace
$Team.Description.Replace([System.Environment]::NewLine, '')
还可以使用计算特性,使选定对象包含修改的描述语句。这将与“拆分并连接”和“替换”一起使用

$Team = Get-Team | Select DisplayName, 
@{'Name' = 'Description' ; 'Expression' = { $_.Description.Split([System.Environment]::NewLine) -join '' } }
这是一个完全可复制的例子

Function Get-Team {
    return [PSCustomObject]@{
        DisplayName = 'MSTeam2'
        Description = @"
Team created through PSScript
add description by hitting enter
and ne  line but changed any privacy
"@
    }    
}


# Original statement
$Team = Get-Team | Select DisplayName, Description
$Team.Description

#Color of the gods
$Cog = @{ForegroundColor = [System.ConsoleColor]::Cyan }


# Split & Join
Write-Host "Using Split & Join" @Cog
$Team.Description.Split([System.Environment]::NewLine) -join ''

# Replace
Write-Host "Using replace" @Cog
$Team.Description.Replace([System.Environment]::NewLine, '')

#Calculated property (could use one of the two above)
$Team = Get-Team | Select DisplayName, 
@{'Name' = 'Description' ; 'Expression' = { $_.Description.Split([System.Environment]::NewLine) -join '' } }

Write-Host 'Calculated property:' @Cog
Write-Host $($Team.Description)


$Description
值是多行字符串吗?如果是这样,您可以在换行符上拆分它,然后使用
-join
将结果行合并为一行。欢迎使用so。请在发帖前花点时间将问题正确格式化。谢谢。但是,在日志文件中获取DisplayName和描述时,我仍然面临一个问题。我正在使用$Description=@{'Name'='Description';'Expression'={$\.Description.Split([System.Environment]::NewLine)-join'}}以及稍后的$outtemp=$DistplayName+“^^”+$Description'$outtemp | Out文件-编码UTF8$UserTeamScontDetailsFileLog-Append@Mayuri这似乎是另一个与你最初询问无关的问题。在使用相关ConvertTo cmdlet将文件输出到文件之前,您可能需要研究将文件转换为CSV或JSON。感谢您提供的解决方案。我尝试在一个.log文件中输出DisplayName和Description,在这个文件中我得到的是“System.Collections.Hashtable”条目而不是Description。但是,当我尝试运行上一条注释中给出的代码而不将数据输出到日志文件时,我在Powershell中得到了所需格式的描述。你能帮我吗?@Mayuri我只能建议你再问一个问题。提供所有相关细节,理想情况下提供最小可复制示例。如果问题很清楚,细节也很详细,我相信你会很快得到答案。从你的评论中我没有足够的细节来回答你。谢谢你的建议。我们在这里详细地问了这个问题:-。你能检查一下吗?