前提・実現したいこと
●実現したいこと
Powershell Read-Hostで取得した文字列から、ファイル名を複数取出したい。
●前提
ファイル名は、「"」や半角スペースで囲まれていることがある。
発生している問題・エラーメッセージ
結果 ---------- Windows PowerShell Copyright (C) 2015 Microsoft Corporation. All rights reserved. ◆複数ファイル指定時は、 Enterを押下してから次のファイルをDrag&Dropしてください。 Drag&drop qrb_data_file(s): C:\Users\saito5\Desktop\ARSC_List_20181023_134906.t xt Drag&drop qrb_data_file(s): C:\Users\saito5\Desktop\Output_20181023_134906.csv Drag&drop qrb_data_file(s): PS E:\WorkFolder>
該当のソースコード
Powershell
1 Write-Host " ◆複数ファイル指定時は、`n Enterを押下してから次のファイルをDrag&Dropしてください。" 2 $temparray = @() 3 do { 4 $input = (Read-Host "Drag&drop qrb_data_file(s)") 5 if ($input -ne '') { $tmparray += $input } 6 } 7 until ($input -eq '') 8 9 $x = @() 10 foreach ( $f in $tmparray ) { 11 $x += (where-Object{ $f.Trim()} | where-Object{ $f.Trim('"') }) 12 } 13 Write-Host $x
試したこと
function FilNamInput($temp){
Write-Host $temp
$filearray = New-Object System.Collections.Generic.List[System.Object]
do {
$input = (Read-Host "drag&drop csv file(s)")
# inputから、空白と "を取り除いて、配列 $tmparrayに追加する
if ($input -ne '') {
$s = ($input.Trim()) | foreach-object{ $_ -replace '"', '' }
$filearray.Add($s)
}
}
until ($input -eq '')
# 同じファイルの指定は排除
$filearray = $filearray | select -uniq
Write-Output $filearray
}
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。