我尝试从psobject导出csv格式的文件。在我的psoobject中,我有一个来自多个变量的自定义属性:
$1 = 8
$2 = 8
$props = @{
'test' = "$1/$2"
}
$csv = New-Object -TypeName psobject -Property $props
$csv | select * | Export-Csv C:\Users\adm-tc5190\Desktop\report\v2\test.csv 正如您所看到的,我的'test‘属性是来自两个变量$1和$2的对象,但是当我在我的文件中导出-csv时,我从我的'test’属性中得到了一个不正确的输出。
下面是我在csv文件中获得的输出:
8月8日-但必须是8/8
预先感谢您的帮助
发布于 2015-04-08 09:50:13
csv文件中的值是字符串"8/8" --它将该字符串假定为部分日期,并以这种方式格式化它。
您可以通过查看文件的实际内容来验证:
PS C:\> Get-Content "C:\Users\adm-tc5190\Desktop\report\v2\test.csv"
#TYPE Selected.System.Management.Automation.PSCustomObject
"test"
"8/8"与使用Excel直接打开csv文件不同,您可以使用“文本导入向导”导入数据( data tab ->获取来自文本的外部数据-> ),并在最后一步中指定"Text“作为数据类型。
发布于 2015-04-08 10:28:00
如果你能解释一下你想要完成什么,也许我们可以提供一个更好的方法?Excel的默认行为是尝试确定数据类型,8/8将被“转换”为日期格式,这是excel行为,与Powershell或它如何处理数据无关。
通过双击csv文件并在Excel中直接打开,我成功地重新创建了这个问题。如果您打开一个空白的excel文件并导入,正如MathiasR.Jesen在下面提到的,在文本导入向导的步骤3中指定“列数据格式”= text,我相信您将得到您期望的行为。这可能是比你想要的更多的工作,但这就是你如何得到你想要的结果。
https://stackoverflow.com/questions/29510119
复制相似问题