Я пишу сценарий powershell, который будет загружать имена файлов, перечисленные в текстовом файле, который был создан сценарием robocopy, в корзину S3, и я не могу получить запись синтаксиса для команды Write-S3Object.
Вот мой код, и я надеюсь, что вы можете помочь мне отладить его:
foreach($line in Get-Content C:\Scripts\ToS3\FileList1.txt) {
if($line -match $regex){
$key = $line -replace [regex]::Escape('\\server\e$\'), '/' -replace
"c:\\", "s3://mybucket/" -replace "\\","/" -replace " `t","" -replace "`t",""
$file = $line -replace " `t","" -replace "`t",""
write-output `"$file`"
write-output `"$key`"
Write-S3Object -BucketName mybucket -File `"$file`" -Key `"$key`" -ProfileName xxxx
}
}
По какой-то причине $ file не загружается должным образом, хотя он прекрасно отображает данные при выводе. Что дает?
Все команды замены используются для создания вывода robocopy:
\ server \ e $ \ Data \ example папка 1 \ папка примера 2 \ другой файл 2.txt
в формат S3:
s3: // mybucket / Data / папка примера 1 / папка примера 2 / другой файл 2.txt