【问题标题】:Different ways to export Powershell information导出 Powershell 信息的不同方法
【发布时间】:2014-11-26 23:50:32
【问题描述】:

我一直在使用我编写的 PowerShell 代码来提取 AD 组及其名称、描述、成员和信息。出于某种原因,无论我使用带有 -Append 的输出标题格式还是 Export-CSV -notypeinformation,这两种方式都不会保存我的 AD 组所拥有的长信息字段。该信息是如此之长,以至于它打印在不同的行(一行或多行)上,这使得 16,000 个组的长列表搞砸了。而不是每行(当我将其导出到 excel 时)都在自己的行上,实际上几乎所有行都在多行上。当我必须手动修复所有这些时,这会变得很疯狂。

所以我的问题是,如何将“信息”字段中的所有数据保存在一个单元格中?

我使用的代码(我的部分代码)如下:

我做了一个标题格式:

Header = `
"Group ID Name" + "|" + `
"Description" + "|" + `
"Notes Field" + " |" + "Members" + "|" + "Member Count"


#Write out the header
$Header | Out-File $pathALL -Append

出口代码为:

$listing =`
$empty.Name + "|" + `
$empty.Description + "|" + `
$empty.info + "|" + `
$members 
$listing | Out-File $pathALL -Append

这仍然弄乱了信息字段,因为显然有太多信息无法放入单元格中。所以我尝试了:

$emptys = get-adgroup -properties name, description, info -filter {name -like "AP*"} `
| Select name, description, info | Export-CSV "C:\Temp\groupsALL.txt"  -notypeinformation

此打印版本仍然存在相同的问题,并且以这种方式分离所有数据也更加困难。在这种情况下,我怎样才能将其全部放入一个单元格中,或者至少将其余信息打印在下一个相邻单元格中

已回答问题:我的信息字段有新行,因此我添加了 FOREACH:

foreach ($lines in $emptys.info){

$lines -replace "``n","" 

}

并将我的打印更改为:

$listing =`
$empty.Name + "|" + `
$empty.Description + "|" + `
#$empty.Info + "|" + `
$lines + "|" + `
$members

【问题讨论】:

  • 是字段太长的问题,还是数据中有换行符?如果有换行符,只需在输出到文件之前用另一个字符替换它们。
  • 实际上...我的信息字段包含多行不同的信息。还没有听说有什么方法可以删除它们...嗯会调查一下
  • 感谢您的回答。我找到了解决方法!!!

标签: powershell printing export


【解决方案1】:
$listing =`
$empty.Name + "|" + `
$empty.Description + "|" + `
$empty.info -replace "`r`n", "NewLine" + "|" + `
$members 
$listing | Out-File $pathALL -Append

显然,将上面第 4 行中的“NewLine”替换为您想要的任何内容来代替换行符。

【讨论】:

  • 在我在这里看到这个之前,我已经解决了我的问题。感谢您对换行符的评论。永远不会想到这一点。
猜你喜欢
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
  • 2019-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
相关资源
最近更新 更多