【问题标题】:What is the purpose of the Complete-BitsTransfer cmdlet?Complete-BitsTransfer cmdlet 的用途是什么?
【发布时间】:2014-01-08 10:50:02
【问题描述】:

PowerShell 和 Windows 有一个很好的框架来传输文件,称为 BITS。这可以同步使用:

Start-BitsTransfer -Source \\remote_file_location -Destination .

有一个异步标志可以在后台运行下载:

Start-BitsTransfer -Asynchronous -Source \\remote_file_location -Destination .

如果你只是异步运行作业,一段时间后它会显示为已转移:

JobId                     DisplayName              TransferType             JobState                             
-----                     -----------              ------------             --------                 
cd070594-6103-44eb-b6c... BITS Transfer            Download                 Transferred

但是,在您运行 Complete-BitsTransfer cmdlet 之前,您的文件不会显示在目标位置:

Get-BitsTransfer | Complete-BitsTransfer

在此之前,您的文件显然处于不确定状态,位于您计算机上的某个位置(或内存中?)。这样做的目的是什么?为什么 Windows 在文件到达时不直接将文件放置到目的地?

【问题讨论】:

  • 应该在 TMP 文件中,直到您完成传输。
  • @Knuckle-Dragger :那有什么意义呢?如果 tmp 文件夹位于小型驱动器上,这不会冒填满您的 tmp 文件夹的风险吗?

标签: windows powershell powershell-3.0


【解决方案1】:

在事件驱动的自动化流程在文件写入后立即执行某些操作的情况下,它允许您通过将文件传输到临时位置来控制该流程的时间,完成流程会将其写入这是最终目的地。

例如如果您将文件传输到多个系统以更新一个客户端软件,并且需要确保它们都同时更新,并且它们都更新或都不更新。

【讨论】:

  • 很公平,虽然我认为它应该是可选的并且至少记录在案。
  • 你知道文件在最终复制之前存储在哪里吗?
  • @static_rtti 从我所看到的它们被放入目标文件夹中;但只是 .tmp 文件(例如BITE665.tmp)。完成后,这些文件将重命名为指定的文件名和扩展名。
猜你喜欢
  • 1970-01-01
  • 2012-06-03
  • 2010-11-09
  • 1970-01-01
  • 2010-09-27
  • 2011-12-17
  • 2010-11-21
  • 1970-01-01
相关资源
最近更新 更多