2016-03-21 51 views
-1

我正面對着我的腳本的一個奇怪問題。電源shell命令選擇2個文件,而不是僅僅一個

我有2個文件: OBTM_OUTCOME_GFM_20150519164709_1.end 和 OBTM_OUTCOME_GFM_20150818142145_11.end

我假設挑只用最小MinKey,其中MinKey是最後底線後面的數字文件。 對於第一個文件,MinKey是1, ,第二個MinKey是11.

S3PathName是S3存儲桶,兩個文件都是相同的。 InputBaseFileName = OBTM_OUTCOME_GFM, 和MinKey被發現,這是1

當我設置下面的命令,我得到兩個文件,而我只在第一個感興趣的是:

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

有沒有可能星號不能正常工作,因爲我認爲它應該? 謝謝

+0

你是如何定義$ MinKey? – dfundako

+2

'-Like「$ S3PathName/$ InputBaseName * _ $ MinKey。*」' – PetSerAl

+0

Thanks @PetSerAl!這實際上解決了它:) – user2518751

回答

1

PetSerAl的解決方案是正確的,*允許任意數量的字符(包括0)。

如果你修剪出,除了年底的一切:

_1.end _11.end

,並應用查詢$_ -like *1.end它將返回這兩個文件,因爲*既可以指「_」和「_1 」。

通過將_添加到查詢:$_ -like *_1.end您確保您只在_之後檢查完整匹配,而不允許其他字符。

替換 「1」`$ MinKey並添加其餘:

Where-Object {$_.Key -Like "$S3PathName/$InputBaseName*_$MinKey.*"} 
相關問題