PowerShell无法写入csv文件。 Write-Host和Export-Csv产生2个不同的输出

时间:2018-06-19 19:17:18

标签: powershell csv converter

操作系统- Windows 10

Powershell版本- 5.1.15063.1088

好吧,我真的在逻辑上努力思考此PowerShell脚本可能出什么问题,但显然无法获得想法并寻求帮助。所以这就是我想要做的,简单到1 + 1

如果我正确地理解了本教程,则在PowerShell中创建一个数组就像这样:

$someVariable = "PowerShell", "MowerShell", "HowerShell", "ZowerShell"

然后我只是想用逗号作为分隔符将此内容写到csv文件中,但首先请在控制台输出中尝试一下

$someVariable | ConvertTo-Csv -NoTypeInformation

根据PowerShell 5.1 official documentation

  

...指定分隔符以分隔属性值。默认值   是逗号(,)。

因此,不需要其他任何我想使用逗号作为定界符的文字。执行命令Write-Host $someVariable之后,我将看到以下奇怪的输出:

 "Length" "10" "10" "10" "10"

这是什么?我是否可以看到变量值用简单的逗号分隔?因此,根据数字,我可以猜测脚本可以计算出每个单词中字母的数量-

  

POWER SHEREL L

  • 包含10个字母。

这是使用ConvertTo-Csv命令计算字符串中字母数量的建议方法吗(以防我在下一次面试中遇到PowerShell任务)?

将此时髦数据写入csv文件本身会导致更多意外结果:

enter image description here

现在我完全迷失了那些数字…… 是否可以将我的字符串以 STRINGS 的形式写到csv文件中,而不是愚蠢的数字?

所需的输出是此条目作为csv文件中的标头:

"PowerShell","MowerShell","HowerShell","ZowerShell"

1 个答案:

答案 0 :(得分:1)

输出读取“ Length”,并具有一系列的10。每个字符串都有10个字符长(不包括双引号)。

长度可以用多种方法计算。我不会说有一种建议的方法,只有适合您要尝试的方法。

要获取您在csv中发布的内容的文字文本(无标题等),请尝试:

$someVariable | Out-File foo.csv