いくつかのヘッダーの名前と列の数が経時的に変更された一連のファイルがあります。ただし、ファイルの開始日は常に最初の列、終了日は2番目の列です。Import-CSV行の最初の2つの項目を取得します
私はこれらの2つの列だけを取得したいと思いますが、名前は時間の経過と共に変更されています。
$FileContents=Import-CSV -Path "$InputFilePath"
foreach ($line in $FileContents)
{
$StartDate=$line[0]
$EndDate=$line[1]
}
...しかし$たFileContentsは(私は信じている)タイプの配列(オブジェクト?)私はPowerShellでのアクセスを位置的するかどうかはわかりませんです: は私がしようとしたことはこれです。どんな助けもありがとう。
編集:ファイルはカンマ区切り記号からパイプ区切り記号に変換されていますが、作業するファイルが1000個あるため、どちらの形式も暗黙的に読み取ることができるため、Import-CSVを使用します。
これはどのように
このアプローチの前提は、区切り文字がデータ内にあることです。そうでない場合は、分割および余分な引用符で問題が発生します。 '$ i = 0' - >' $ i = 1'のように、最初の行をスキップする必要があります。そうしないと、古いヘッダがデータのオブジェクトになります。 – BenH
これは機能しました。私は、 "StartDateColumn"、 "EndDateColumn"を "foreach($ FileContentsの$行)"というヘッダーとして使用しました。 $ line.StartDateColumnを使うと必要な結果が得られました。ありがとうございました。 – Phoenix14830