2017-01-19 8 views
0

Microsoft Remote Desktopの保存済みセッションは、テキストエディタで開いたときに値を持っています(自分自身をテストする、リモートデスクトップ接続を開く、オプションをクリックする、テキストエディタで結果の.rdpファイルを開きます)。PowerShellとSelect-Stringを使用してテキスト用の非標準ファイルを解析する

Cannot index a null array

があります:

$MyOObject."Prompt" = (Select-String -Path $Path -Pattern "promptcredentialonce: (.*)").Matches.Groups[1].Value 

...次のエラーを生成します(他のファイル形式にまったく同じ構文がときに動作している)、ここで標準Select-Stringコマンドを使用して、しかし

、 PowerShell 2.0では、この種のファイルや標準以外のテキストファイルを解析するために使用するコマンドが異なりますか?

+0

私が更新しています@wOxxOm – AlwaysQuestioning

+0

'Matches'は配列なのでPS2では' Matches [0] 'やforeach/where/select-objectが必要です。 – wOxxOm

答えて

1

あなたのパターンは正しくありません。 .rdpファイル内のオプションの構文は、あなたの場合は

name:type:value 

されています。しかし、あなたは存在しないオプション名(後にスペースで何かに一致するようにしようとしている

promptcredentialonce:i:0 

):

promptcredentialonce: (.*) 

一致なし.Matchesプロパティが空であると.Group[1]はヌル値にインデックス付きのアクセスを試みます。

あなたはタイプを含む値をしたい場合は、スペースを削除します。

promptcredentialonce:(.*) 

あなただけの値をしたい場合は、このような何かにパターンを変更します。

promptcredentialonce:\w+:(.*) 
関連する問題