【发布时间】:2020-02-13 16:14:58
【问题描述】:
我正在尝试在 Powershell 中执行 aws s3 cp 命令。我有一个文件列表,我在下面的数组中定义了这些文件。
$filearray = ("file1.txt", "file2.txt", "file3.txt", "file4.txt", "file5.txt")
现在,当我尝试使用 aws s3 cp 命令从 s3 复制这些文件时,没有任何效果。
$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 命令添加了变量,循环执行时如下所示。
$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 循环。
【问题讨论】:
标签: amazon-web-services powershell