2010-12-14 63 views
0

Lorsque j'utiliseImport-CSV utile pour l'importation de; page de code -Séparé 1252 fichiers

Import-Csv $mycsvFile 

Je reçois des lignes comme

1;M�nchen;Bayern 

Les 2 problèmes, qu'il ne comprend pas la page de codes ansi (c'est-à-dire n'a pas de paramètre de codage par défaut) et je n'ai pas réussi à utiliser le paramètre -del pour lui dire d'utiliser le; en tant que séparateur. Aucune suggestion?

+0

J'ai travaillé dans le charset problème en utilisant une copie utf-8 de mon fichier d'origine, mais je n'ai toujours aucune idée de comment faire fonctionner le paramètre dokumented -Delimiter. –

Répondre

0

Il y a 3 points à noter pour RÉUSSI utiliser Import-CSV

  1. les données doit inclure une ligne avec les en-têtes ou les en-têtes doit être fourni en tant que paramètre. Sans le message d'erreur n'est pas vraiment utile
  2. code page 1252 ne fonctionne pas, il n'y a pas de paramètre -encoding qui offre par défaut, comme dans les autres cmdlets similaires.
  3. Une fois les deux premiers points complétés, le paramètre -delimiter fonctionne comme décrit. link text

J'ai vraiment pensé à utiliser gc et Split pour atteindre mon problème, où les données a environ
20000 lignes.

ici pour la démonstration, je présente un exemple 1 en ligne:

Contenu de DemoData.csv:

1;München;Bayern 

Contenu de Import-DemoData.ps1

$header = "id","Ort","Land" 
Import-CSV C:\mydata\DemoData.csv -del ';' -head $header 
+1

Rappelez-vous également qu'il existe un ConvertTo-CSV qui fonctionne sur l'entrée de chaîne. – JasonMArcher