Existe-t-il un moyen de créer un objet csv dans powershell à partir d'une variable contenant une chaîne? Au moment où je besoin d'écrire le contenu dans un fichier temporaire puis importer au format CSV et je veux réduire les opérations de disque:Importer-Csv à partir d'une chaîne à partir d'un fichier?
$some_string | Set-Content $temp_file
$csv_content=Import-Csv $temp_file
EDIT
@Graham Or, Јοеу merci pour les réponses (je l'ai mis +1 sur tous les deux), mais semble la réponse de Joey est mon test de correct.Here:
$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
Et le résultat:
ConvertFrom result:
H1
--
col1 ; "col2"
val11 ; val12
val21 ; val22
ConvertTo result:
#TYPE System.String
"Length"
"47"
Cette question a déjà été répondu et accepté. Pourriez-vous clarifier pourquoi votre réponse est encore meilleure que celle qui a été acceptée? – Jonas
En fait, en relisant la question j'aurais dû fournir une solution légèrement différente: $ csv_content1 = Convertir-CSV -delim ';' -Input $ some_string L'avantage est qu'il n'a pas besoin de mettre la chaîne sur le pipeline. Cependant, pour l'exemple de texte donné lorsqu'un développeur souhaite que le texte soit incorporé dans le programme lui-même, utiliser l'exemple avec la chaîne @here est meilleur car il ne nécessite pas d'enregistrer le texte dans une variable chaîne et de créer à nouveau pipeline inutilement. – wtgreen
Pourriez-vous s'il vous plaît modifier votre réponse et ajouter cette explication, afin que les gens qui trouvent cette question à l'avenir comprennent pourquoi votre réponse pourrait être meilleure? Spécialement lorsque vous répondez à des questions anciennes, il est généralement préférable de fournir autant de détails que possible. Le site fonctionne mieux si nous aidons en donnant suffisamment d'informations pour que les gens comprennent comment les choses fonctionnent dans nos réponses. Merci. – Jonas