残念ながら、Import-CSV
の区切り文字は1文字しか使用できません。これには2つのオプションがあります。最初に、ファイルの文字列解析を使用して、1つの区切り文字を取得します。
(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
この方法では、インポート/エクスポートをスキップしてカンマで置き換えることができます。
それ以外の場合は、追加の列とフィルタを使用してcsvをインポートできます。鉄が示すように、一つだけ余分な列を持っている場合、あなたは単にそれを除外することができます:あなたが他の列のどれもH
で始まっていないことを前提に-ExcludeProperty H*
を使用することができるように
Import-Csv C:\path\to\file\PageLog.txt -Delimiter "`t" |
Select-Object * -ExcludeProperty H1 |
Export-Csv C:\path\to\file\PageLog.csv -NoTypeInformation
あなたは倍数を持っている場合は
、
Select-Object
はワイルドカードをサポートしています。
それ以外の場合は、列名に対して正規表現を使用できます。
$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
「... | * * ExcludeProperty H1 | ... 'を選択してください:https://stackoverflow.com/a/40085445/1701026 – iRon