Это не проблема PowerShell. Windows вообще не чувствительна к регистру, но дизайн, где все мы знаем * Nix чувствителен к регистру.
Итак, вы делаете это в PowerShell, собираясь переместить все, что соответствует шаблону, игнорируя регистр, в соответствии с дизайном.
Вы можете использовать PowerShell и RegEx для указания чувствительности к регистру. Хотя я никогда не пытался сделать это с помощью AWS CLI , поскольку я использую только AWS PowerShell, поскольку PowerShell - это то, что я использую везде, даже в наши дни на клиентах OSX и Linux .
Как обсуждено в этом Q & A:
Как выполнить поиск файлов с учетом регистра с помощью PowerShell
Get-Childitem -Path C:\ | Where-Object {$_.what_you_want_to_filter -match "REGEX"}
Get-Childitem -Path C:\ | Where-Object {$_.Name -clike "CAPS*"}
Вы можете использовать вышеуказанный командлет, затем передать его командлету Move-Item или просто напрямую использовать командлет Move-Item.
Обновление для OP
Что касается ...
Но не могу понять, как я могу интегрировать PowerShell
чувствительные к регистру инструменты с расширением aws.
То, что вы показываете, находится в интерфейсе командной строки AWS, в котором вы используете обычную операцию сравнения, вы также можете использовать оператор сравнения. Пример
'Test*' -eq 'Test*'
True
'test*' -ceq 'Test*'
False
Вы говорите, что вы пробовали это, и вы не получили то, что вы хотели?
Операторы сравнения PowerShell -eq, -ceq и -ieq
Операторы сравнения
Или измените свой код, чтобы сделать это ...
'test*','Test*' | select-string -pattern 'Test*'
test*
Test*
'test*','Test*' | select-string -pattern 'Test*' -CaseSensitive
Test*
Я немного больше об этом говорил на своем локальном диске, у меня нет S3, и, как указано, я не использую AWS CLI ни в одном из моих случаев использования AWS.
Попробуйте, если, конечно, вы ищете только первый символ с большой буквы.
Clear-Host
(Get-ChildItem -Path 'D:\Temp\*Test*').FullName
<#
D:\Temp\BusinessTest.pptx
D:\Temp\BusinessTest.pptx - Shortcut.lnk
D:\Temp\Test.clixml
D:\Temp\test.csv
D:\Temp\test.docx
D:\Temp\test.zip
D:\Temp\TestD&DScript.gif
#>
Clear-Host
Get-ChildItem -Path 'D:\Temp\*Test*' |
Where-Object {$_.Name -cmatch '^[A-Z].*'}
<#
Directory: D:\Temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 7/27/2018 12:38 PM 33520 BusinessTest.pptx
-a---- 8/4/2018 11:44 PM 1084 BusinessTest.pptx - Shortcut.lnk
-a---- 10/2/2018 5:26 PM 202 Test.clixml
-a---- 8/24/2018 7:37 PM 439363 TestD&DScript.gif
#>
Итак, может быть ...
${v_file_exst_chk} = (aws s3 ls s3://${v_full_src_path}) |
Where-Object {$_.Name -cmatch '^[A-Z].*'}