- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Powershellで外部テキストファイルより)
Powershellで外部テキストファイルより
このQ&Aのポイント
- Powershellで外部テキストファイルから特定の値を取得する方法を教えてください
- 質問者はPowershellの初心者であり、外部テキストファイルの内容を処理したいと考えています
- 具体的には、端末のホスト名とテキストファイルのホスト名が一致する行の特定の値を取得したいとしています
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
すみません、さっきのだとチーム名がたまたまホスト名と同じような時も引っかかっちゃいますね。 ということで、こちらのほうが少し安全でしょうか gc -Encoding String c:\share\applist.txt | foreach{$hostname, $teamname = $_ -split(' ', 2); if($hostname -eq $(hostname)){echo $teamname; break}}
その他の回答 (1)
- sholmes
- ベストアンサー率81% (89/109)
回答No.1
ホスト名とチーム名の区切りが「半角スペース+全角スペース」に見えますが、間違い無いでしょうか だとしたら、文字コード指定しつつ全角スペースで区切ってしまうのが早い気はします。 PowerShellは自分もたまに触るぐらいなのですが、とりあえず動いたものを載せておきます。 applist.txtがShift_JISでなければ、「oem」を変えて下さい (Select-String -Path c:\share\applist.txt -Pattern $(hostname) -SimpleMatch -List -Encoding oem).line.split(' ')[1] 各種パラメータ等は適宜調整してみて下さい
質問者
お礼
確かに、いろいろな人がこのテキストを編集するので、全角スペースと半角スペースが入っているときがあるので、全角スペースで区切るという方法があるんですね。
お礼
欲しい情報の取得が出来ました。 丁寧な回答をありがとうございます。これも、確かに全員で使用するPCはわかりやすいようにホスト名=チーム名にしているものもあります。 foreachはforeach-objectと違うのだということも、あらためていろいろ調べて読んでみて良くわかりました(同じだと思っていました汗) ありがとうございました。