CSVには1つの列があり、数値がでフォーマットされており111-0000
、一度に1つずつ処理するために読み込んでいます。CSVから情報の列をインポートしようとしていますが、CSVから読み取った配列からそれを抽出する適切な方法を見つけるのに問題があります。
CSVは次のようになります。
プロジェクト
111-0000
112-0000
ファイルから取得したいのは、各プロジェクト番号を返す変数です。これまでのところ、返品できるのは次のとおりです。
@{Project=111-0000}
現在、私が持っているのはForEach
、CSVファイルから行を読み取る最初のステートメントだけです。
$CSV=Import-Csv "C:\ProjectList.csv"
ForEach ($Entry in $CSV)
この時点で、挿入
Write-Host $Entry
次の情報を返します。
@ {Project = 110-0000}
@ {Project = 111-0000}
@ {Project = 112-0000}
@ {Project = 113-0000}
この時点で必要なのは、その中から数値を抽出し、後でスクリプトで使用することです。そこで、そのプロジェクトに対して他のプロセスを実行します。ForEachがエントリにヒットするたびに処理する最終的な文字列は次のようになります。
C:\ 111-0000
このパスを処理し、最初からやり直して、リスト内の次のプロジェクトを取得し、リストの下で処理します。しかし、次のように最終的に出てくるのを防ぐための適切なコードを取得することはできません。
C:\ @ {Project = 111-0000}
最初のForEach内で別のForEachを使用して、コードから数値を抽出して渡すことを試みましたが、ここで行き詰まっています。
$lvCSV = New-Object System.Windows.Forms.ListView
ForEach ($Col in ($lvCSV.Columns )| ?{$_.Text -ne "Project"}){
$ProjectNumber = $Col.Text
$Entry
もっと処理する必要があることはわかっていますが、適切な処理を見つけることができません。正しい方向に私を導くのを手伝ってもらえますか?
コードスニペット:
$CSV=Import-Csv "C:\ProjectList.csv"
ForEach ($Entry in $CSV){
$lvCSV = New-Object System.Windows.Forms.ListView #Defined at script start
ForEach ($Col in ($lvCSV.Columns )| ?{$_.Text -ne "Project"}){
$ProjectNumber = $Col.Text
$project = Import-Csv "project.csv"
ますか?