Malheureusement, les délimiteurs Import-CSV
ne peuvent contenir qu'un seul caractère. Cela vous laisse avec deux options. La première consiste à utiliser l'analyse de chaîne sur le fichier pour descendre à un délimiteur.
(Get-Content C:\path\to\file\PageLog.txt) -replace "`t`t","`t" | Out-File C:\path\to\file\PageLog.temp.txt
Import-Csv C:\path\to\file\PageLog.temp.txt -Delimiter "`t" | Export-Csv C:\path\to\file\PageLog.csv -NoTypeInformation
Dans cette méthode, vous pouvez ignorer l'importation/exportation et simplement remplacer par une virgule.
(Get-Content C:\path\to\file\PageLog.txt) -replace "`t`t",',' | Out-File C:\path\to\file\PageLog.temp.txt
Sinon, vous pouvez importer le fichier csv avec des colonnes supplémentaires et filtrer. Comme IRON suggère, si vous avez seulement une colonne supplémentaire, vous pouvez simplement exclure:
Import-Csv C:\path\to\file\PageLog.txt -Delimiter "`t" |
Select-Object * -ExcludeProperty H1 |
Export-Csv C:\path\to\file\PageLog.csv -NoTypeInformation
Si vous avez des multiples, Select-Object
prend en charge les caractères génériques pour que vous puissiez utiliser -ExcludeProperty H*
avec l'hypothèse qu'aucun de vos autres colonnes a commencé avec H
.
Sinon, vous pourriez utiliser une regex contre les noms de colonnes.
$CSV = Import-Csv C:\path\to\file\PageLog.txt -Delimiter "`t"
$GoodColumns = $CSV |
Get-Member -MemberType NoteProperty |
Where-Object {$_.name -notmatch '^H\d+$'} |
Select-Object -ExpandProperty Name
$CSV | Select-Object $GoodColumns | Export-Csv C:\path\to\file\PageLog.csv -NoTypeInformation
Utilisez '... | Sélectionnez * -ExcludeProperty H1 | ... ', voir: https://stackoverflow.com/a/40085445/1701026 – iRon