如何在PowerShell中将命令或脚本的输出转换为单行结果
将PowerShell脚本输出转为单行结果
要把脚本里所有输出合并成单行,核心就是捕获所有可能产生输出的内容,再拼接成一行返回。你的原始代码中,New-AzStorageContainer命令会返回容器的相关信息,加上最后的提示文本,会产生多行输出,下面给你两种调整方案:
方案一:保留命令输出并合并为单行
如果需要保留容器创建命令的输出,同时和提示文本合并成一行,用$(...)捕获命令输出后拼接即可:
$containername = "testoutput" $storageAccKey = (Get-AzStorageAccountKey -ResourceGroupName $rgname -AccountName $storageAccountName)[0].value $storagecontext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccKey # 捕获容器创建的输出,和提示信息拼接成单行 $singleLineOutput = "$(New-AzStorageContainer -Name $containername -Context $storagecontext -Permission Off) | Container $containername created" # 输出单行结果 Write-Output $singleLineOutput
方案二:仅输出自定义单行提示
如果不需要保留容器命令的原始输出,只想得到自定义的单行提示,把命令输出重定向到$null抑制多余输出即可:
$containername = "testoutput" $storageAccKey = (Get-AzStorageAccountKey -ResourceGroupName $rgname -AccountName $storageAccountName)[0].value $storagecontext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccKey # 抑制容器创建命令的默认输出 New-AzStorageContainer -Name $containername -Context $storagecontext -Permission Off | Out-Null # 输出单行提示 Write-Output "Container $containername created"
补充说明
$(...)是PowerShell的子表达式运算符,会执行括号内的命令并返回其输出,方便把命令结果嵌入字符串。Out-Null用于丢弃命令的输出,避免这些内容被输出到控制台产生多行结果。
内容的提问来源于stack exchange,提问作者Subhransu Sekhar
相关产品推荐
相关产品推荐

