我尝试从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
你可以看到我的测试'属性是来自2个变量$ 1和$ 2的对象。 但是当我在我的文件中导出-csv时,我的测试结果输出错误了#39;属性。
以下是我在csv文件中输出的内容:
8月8日但必须是8/8
提前感谢您的帮助
答案 0 :(得分:2)
csv文件中的值是字符串"8/8"
- 它的Excel假定该字符串是部分日期,并以这种方式格式化。
您可以通过查看文件的实际内容进行验证:
PS C:\> Get-Content "C:\Users\adm-tc5190\Desktop\report\v2\test.csv"
#TYPE Selected.System.Management.Automation.PSCustomObject
"test"
"8/8"
您可以使用“文本导入向导”导入数据,而不是直接使用Excel打开csv文件(数据标签 - &gt;获取外部数据 - &gt; 来自文本< / strong>),并在最后一步中将“Text”指定为数据类型
答案 1 :(得分:0)
如果你能解释一下你想要实现的目标,或许我们可以提供更好的方法吗? Excel的默认行为是尝试确定数据类型,8/8将被“翻译”为日期格式,这是一种excel行为,与Powershell无关或如何处理数据。
通过双击csv文件并直接在Excel中打开,我成功地重新创建了该问题。如果您打开一个空白的Excel文件并导入,如下面提到的Mathias R. Jessen,在文本导入向导的第3步中指定“列数据格式”=文本,我相信您将获得您期望的行为。它可能比您想要的更多,但这就是您获得所需结果的方式。