Czy istnieje sposób na utworzenie obiektu CSV w powłoce ze zmiennej zawierającej łańcuch? W tej chwili muszę napisać zawartość w pliku temp, a następnie zaimportować je do pliku CSV i chcę ograniczyć operacje dyskowe:Importuj-CSV z łańcucha zamiast z pliku?
$some_string | Set-Content $temp_file
$csv_content=Import-Csv $temp_file
EDIT
@Graham Złoto, Јοеу dzięki za odpowiedzi (mam ustawione +1 na was obu), ale wydaje się odpowiedzią Joey'a jest correct.Here to moja próba:
$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
A wynik:
ConvertFrom result:
H1
--
col1 ; "col2"
val11 ; val12
val21 ; val22
ConvertTo result:
#TYPE System.String
"Length"
"47"
Ta kwestia została już odpowiedział i zaakceptowane. Czy możesz wyjaśnić, dlaczego twoja odpowiedź jest jeszcze lepsza niż ta, która została zaakceptowana? – Jonas
Właściwie, po ponownym przeczytaniu pytania powinienem podać nieco inne rozwiązanie: $ csv_content1 = ConvertFrom-CSV -delim ';' -Input $ some_string Zaletą jest to, że nie trzeba umieszczać struny na rurociągu. Jednak dla przykładowego tekstu podanego, gdy programista chce, jest tekst osadzony w samym programie, użycie przykładu z ciągiem @here jest lepsze, ponieważ nie wymaga najpierw zapisania tekstu w zmiennej łańcuchowej i ponownie utworzenia rurociągu niepotrzebnie. – wtgreen
Czy możesz edytować odpowiedź i dodać to wyjaśnienie, aby osoby, które znajdą to pytanie w przyszłości, zrozumiały, dlaczego Twoja odpowiedź może być lepsza? Podczas odpowiadania na stare pytania zazwyczaj lepiej podać jak najwięcej szczegółów. Strona działa lepiej, jeśli pomagamy, przekazując informacje wystarczające, aby ludzie mogli zrozumieć, jak działają nasze odpowiedzi. Dzięki. – Jonas