通过慢速网络连接实现可靠的 Windows 文件传输

通过慢速网络连接实现可靠的 Windows 文件传输

我想问是否有人知道如何使用 Windows 或 PowerShell 本地执行某些操作。

我称之为“文件漏斗”。

我希望能够将文件放在机器上的给定文件夹中,并让这些文件随着时间的推移(连接速度慢得多)自动传输到网络驱动器。

但我希望它能够可靠地完成 - 这意味着我希望传输能够以事务方式完成,以便文件在其他位置得到验证之前不会被删除。

使用它应该像转储文件夹中的文件一样简单 - 文件成功传输后,文件夹将为空。

答案1

当然你可以这样做Robocopy使用/S/MOV参数确保源位置的文件被复制到目标位置,然后在复制成功完成后从源中删除文件。


批处理脚本

SET SRC="Z:\path\source"
SET DEST="X:\path\destination"
SET FName=*.*
SET LOG=C:\Path\Log.txt
::   If you do not want a log file, remove the "/LOG+:%LOG%" below
SET OPT=/S /MOV /NP /R:5 /LOG+:%Log% /TS /FP
SET CMD=robocopy %SRC% %FName% %DEST% %OPT%
%CMD%

PowerShell 脚本

$SRC   = "Z:\path\source"
$DEST  = "X:\path\destination"
$FName = "*.*"
$OPT   = "/S /MOV /NP /R:5"
$CMD   = "robocopy $SRC $FName $DEST $OPT"
Invoke-Expression $CMD

笔记:为了实现自动化,您只需使用此语法创建一个 PowerShell 或批处理脚本,然后使用任务计划程序进行安排,以根据您的计划需要每小时、每X分钟等运行一次。


更多资源

  • Robocopy

           /S :: copy Subdirectories, but not empty ones.
           /MOV :: MOVe files (delete from source after copying).
    

相关内容