前提・実現したいこと
Powershell初心者です。
$pathにはCSVファイルがたくさん入っているとします。
すべてのCSVを1つずつ読み込み、2列目の2行目がABCDから始まっていたら、CSVを$Targetへ移動させたいです。
CSVはヘッダー有り・文字コードSJIS・区切り文字,です。
発生している問題・エラーメッセージ
エラーメッセージはないのですが、2列目2行目を指定できていません。
ちなみに、CSVファイルの中身はSQLから書き出ししたものです。おそらくカラム名あります。
該当のソースコード
Powershell
1 2#CSVがあるフォルダ 3$path = "" 4 5#移動先フォルダ 6$Target = "" 7 8#CSVファイルの一覧 9$array = Get-ChildItem -File -Name $path 10 11#CSVファイルを1つずつ読み込む 12$array | ForEach-Object{ 13 If(Select-String -Path $_ -Pattern "ABCD*" -Quiet){ 14 Move-Item $_ $Target -Force 15 } 16}
2/20追記
Ifの中にCSVの2列目のヘッダーを指定する文を追加しました。
2列目から検索をしたいのに、1列目を検索してしまいます。
#CSVファイルを1つずつ読み込む $array | ForEach-Object{ If(Get-Content $_ | ConvertFrom-Csv -Header 2列目のヘッダー名 | Select-String -Pattern "ABCD*"){ Move-Item $_ $Target -Force }
回答2件
あなたの回答
tips
プレビュー