从字符串而不是从文件导入-Csv?

时间:2013-07-05 09:22:57

标签: powershell csv

有没有办法在powershell中从包含字符串的变量创建csv对象? 目前我需要在临时文件中写入内容,然后将其导入csv,我想减少磁盘操作:

$some_string | Set-Content $temp_file
$csv_content=Import-Csv $temp_file

修改

@Graham Gold,感谢您的回答(我已经为你们两个设置了+1),但似乎Joey的回答是正确的。这是我的考试:

    $csv_string="
`"col1`" ; `"col2`"
val11 ; val12
val21 ; val22"

$csv_content1 = $csv_string | ConvertFrom-CSV 
$csv_content2 = $csv_string | ConvertTo-CSV 
"
ConvertFrom result:"
$csv_content1
"
ConvertTo result:"
$csv_content2

结果:

ConvertFrom result:

H1                                                                             
--                                                                             
col1 ; "col2"                                                                  
val11 ; val12                                                                  
val21 ; val22                                                                  

ConvertTo result:
#TYPE System.String
"Length"
"47"

2 个答案:

答案 0 :(得分:27)

您可以改为使用ConvertFrom-Csv

$csv_content = $some_string | ConvertFrom-Csv -Delim ';'

Import-Csv只不过是Get-ContentConvertFrom-Csv的包装。

答案 1 :(得分:2)

更好:

$csv_content1 = ConvertFrom-CSV -delim ';' -Input @"
"col1"; "col2"
val11 ; val12
val21 ; val22
"@