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在文件到达目的地时不直接将其放置在目的地?
最佳答案
在事件驱动的自动化进程在文件写入后马上要执行某些操作的情况下,它允许您通过将文件传输到临时位置来控制该进程的计时,整个进程将把文件写入其最终目的地。
例如,如果您要将一个文件传输到多个系统以更新一个客户端软件,并且需要确保它们都在同一时间更新,并且它们都在更新或没有更新。