2016-03-21 6 views
-1

私のスクリプトでは奇妙な問題に直面しています。パワーシェルコマンドは、1つではなく2つのファイルを選択します

私は2つのファイルがあります:私はMinKeyは最後のアンダースコアの後の数字である最小MinKey、とだけファイルを選択すると仮定していOBTM_OUTCOME_GFM_20150519164709_1.end と OBTM_OUTCOME_GFM_20150818142145_11.end

を。 最初のファイルの場合、MinKeyは1で、2番目のMinKeyの値は です。

S3PathNameはS3バケットで、両方のファイルで同じです。 InputBaseFileName = OBTM_OUTCOME_GFM、 とMinKeyを発見し、それは1

私は、以下のコマンドを設定すると、私は最初の1で唯一興味ながら、私は、ファイルの両方を取得しているれました:

Get-S3Object -BucketName $S3BucketName -KeyPrefix $S3PathName | 
Where-Object {$_.Key -Like "$S3PathName/$InputBaseName*$MinKey.*"}..... 

アスタリスクが機能しない可能性はありますか? ありがとう

+0

はどのように$ MinKeyを定義していますか? – dfundako

+2

'-Like" $ S3PathName/$ InputBaseName * $ MinKey。* "' – PetSerAl

+0

ありがとう@PetSerAl!それは実際にそれを解決した:) – user2518751

答えて

1

PetSerAlの解決策は、*は任意の数の文字(0を含む)を許可します。

あなたが最後を除くすべてアウトトリム場合:*は「両方「_」と意味することができますので、それは、両方のファイルを返します

_1.end _11.end

を、クエリ$_ -like *1.endを適用_1 "

クエリに_を追加すると、追加の文字を許可するのではなく、_の後に完全一致を確認するだけです。

`$ MinKeyに置き換えて "1" と休息に追加します。

Where-Object {$_.Key -Like "$S3PathName/$InputBaseName*_$MinKey.*"} 
関連する問題