这就是我现在所拥有的:
Write-S3Object `
-BucketName "user-staging" `
-Key "app/access/partials/webapi.html" `
-File "app/access/partials/webapi.html" `
-HeaderCollection @{"Cache-Control" = "public,max-age=600"}
Write-S3Object `
-BucketName "user-staging" `
-Key "app/auth/partials/agreement_policy.html" `
-File "app/auth/partials/agreement_policy.html" `
-HeaderCollection @{"Cache-Control" = "public,max-age=600"}
我想在partials目录中发布一些但不是全部的文件。为此,我现在逐个列出每个文件。
我知道我可以使用这段代码:
Get-ChildItem . -Recurse | Foreach-Object{
但是会列出目录中的所有文件。
是否有某种方法可以将文件名放在数组中并为数组的每个元素执行Write-S3Object?
答案 0 :(得分:0)
Foreach-Object
是针对此类问题而制作的。
$array = @()
$array += "path/file1"
$array += "path/file2"
$array += "path/file3"
$array | foreach {
Write-S3Object `
-BucketName "user-staging" `
-Key $_ `
-File $_ `
-HeaderCollection @{"Cache-Control" = "public,max-age=600"}
}
创建数组的更紧凑的形式只是$array = @("path/file1", "path/file2", etc)
您还可以通过为数组分配已过滤的Get-ChildItem
$array = gci '*.txt' -exclude 'not-this-one.*'