2013-07-05 26 views
12

Có cách nào để tạo đối tượng csv trong PowerShell từ biến chứa chuỗi không? Tại thời điểm này tôi cần phải viết nội dung trong một tập tin tạm thời và sau đó nhập nó vào csv và tôi muốn giảm bớt hoạt động của đĩa:Nhập-Csv từ chuỗi thay vì từ tệp?

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

EDIT

@Graham Vàng, Јοеу cảm ơn cho câu trả lời (tôi đã thiết lập 1 trên cả hai bạn), nhưng dường như câu trả lời của Joey là correct.Here của thử nghiệm của tôi:

$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 

Và kết quả:

ConvertFrom result: 

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

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

Trả lời

22

Bạn có thể sử dụng thay vì ConvertFrom-Csv:

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

Import-Csv là ít hơn một wrapper xung quanh Get-ContentConvertFrom-Csv.

2

Thậm chí tốt hơn:

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

Câu hỏi này đã được trả lời và chấp nhận. Bạn có thể làm rõ tại sao câu trả lời của bạn thậm chí còn tốt hơn câu trả lời được chấp nhận? – Jonas

+1

Thực ra, khi đọc lại câu hỏi, tôi đã cung cấp một giải pháp hơi khác: $ csv_content1 = ConvertFrom-CSV -delim ';' -Input $ some_string Lợi thế là nó không cần phải đặt chuỗi trên đường ống. Tuy nhiên đối với văn bản ví dụ được đưa ra khi nhà phát triển muốn văn bản được nhúng trong chính chương trình, sử dụng ví dụ có chuỗi @here tốt hơn ở chỗ nó không yêu cầu lưu văn bản vào biến chuỗi đầu tiên đường ống không cần thiết. – wtgreen

+0

Bạn có thể vui lòng chỉnh sửa câu trả lời của mình và thêm giải thích này, để mọi người tìm thấy câu hỏi này trong tương lai hiểu tại sao câu trả lời của bạn có thể tốt hơn? Đặc biệt khi trả lời các câu hỏi cũ, thường tốt hơn là cung cấp càng nhiều chi tiết càng tốt. Trang web hoạt động tốt hơn nếu chúng tôi trợ giúp bằng cách cung cấp đủ thông tin để mọi người hiểu cách mọi thứ hoạt động trong các câu trả lời của chúng tôi. Cảm ơn. – Jonas