Я пытаюсь выполнить команду aws s3 cp в Powershell. У меня есть список файлов, которые я определил в массиве, как показано ниже.
$filearray = ("file1.txt", "file2.txt", "file3.txt", "file4.txt", "file5.txt")
Теперь, когда я пытаюсь скопировать эти файлы из s3, используя команду aws s3 cp работает.
$filearray | foreach { "aws s3 cp s3://<bucket_name/path_to_file/$_ . --sse aws:kms --sse-kms-key-id 12345-abcxzd" }
Я тоже попробовал ниже. Но это не сработало. Может ли кто-нибудь указать на ошибку, которую я делаю?
foreach ($element in $filearray) { "aws s3 cp s3://<bucket_name/path_to_file/$element . --sse aws:kms --sse-kms-key-id 12345-abcxzd" }
Теперь я добавил переменные в свою команду aws, которая также будет выглядеть так, как показано ниже, когда будет выполняться l oop.
$kms_key_option="--sse aws:kms --sse-kms-key-id 12345-abcxzd"
$s3_location="s3://<bucket_name/path_to_file/"
foreach ($element in $filearray) { & aws s3 cp $s3_location/$element $current_location $kms_key_option }
Но здесь есть одна загвоздка. Только первые 2 переменные в командном блоке работают как переменные, остальные 2 не работают как переменные. то есть $current_location $kms_key_option
Таким образом, постановка проблемы здесь немного меняется.
Примечание: на моем компьютере windows установлена aws cli, она работает с обычной командой, но не работает в foreach l oop.