PowerShell和Windows有一个很好的传输BITS文件的框架。 这可以同步使用:
Start-BitsTransfer -Source \\remote_file_location -Destination .
有一个asynchronous标志在后台运行下载:
Start-BitsTransfer -Asynchronous -Source \\remote_file_location -Destination .
如果你只是asynchronous运行这个工作,过了一段时间它会显示为转移:
JobId DisplayName TransferType JobState ----- ----------- ------------ -------- cd070594-6103-44eb-b6c... BITS Transfer Download Transferred
但是,在运行Complete-BitsTransfer cmdlet之前,您的文件不会显示在目标上:
Get-BitsTransfer | Complete-BitsTransfer
在那之前,你的文件显然在你的计算机的某个地方(或者在内存? 这样做的目的是什么? 为什么windows不直接将文件放到目的地?
在事件驱动的自动化进程一旦写入文件就要执行某些操作的情况下,可以通过将文件传送到临时位置来控制该进程的执行时间,完成进程会将其写入最终目标。
例如,如果您将一个文件传输到多个系统来更新一个客户端软件,并且需要确保它们都在同一时间进行更新,并且所有这些文件都更新或者没有更新。