使用gsutil cp到GCP运行powershell脚本可显示多行上传进度

时间:2019-04-12 14:57:43

标签: powershell gsutil

我有一个简单的Powershell脚本,该脚本从Win'2008R2系统上的Task Scheduler运行,基本上只运行以下命令:

  

gsutil -o GSUtil:parallel_composite_upload_component_size = 0 cp -L   C:\ logs \ log1.txt C:\ archive \ *。zip gs:// temp

我正在使用Start-Transcript将输出记录到results.log文件中。问题是,在将zip文件上传到gcp时,它会在上传过程中每隔64KB记录多行的进度:

Resuming upload for file://E:\db\db1.zip
Uploading   gs://temp/db1.zip:             0 B/1.20 GiB
Uploading   gs://temp/db1.zip:             98.75 MiB/1.20
Uploading   gs://temp/db1.zip:             98.81 MiB/1.20
...and keeps repeating this until it uploads the entire 1.20 GB.

因为然后将result.log文件通过电子邮件发送给一群人,所以我不需要他们看到所有这些垃圾。仅显示其中一行并显示最终文件大小就足够了。

当我使用 powershell.exe -file c:\ scripts \ upload.ps1 从Windows命令提示符(或从本机Powershell)运行命令或脚本时,它会按预期工作,显示单行进度:

Resuming upload for file://E:\db\db1.zip
Uploading   gs://temp/db1.zip:             1.20 GiB/1.20 GiB

之前,当我运行不带'-o GSUtil:parallel_composite_upload_component_size = 0'参数的相同命令时,它显示的是相同的长输出,但是一旦我将其添加到gsutil中,我就认为它很好,因为它不会重复PS命令提示符中的许多行都不再显示进度。因此,只有当我从Task Scheduler运行脚本时,这种情况才会发生。

任何想法为什么会发生这种情况以及如何解决?

1 个答案:

答案 0 :(得分:1)

an open feature request in the gsutil repository, issue #481,可在输出定向到非交互式终端时禁用进度条。