我想问是否有人知道如何使用 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
分钟等运行一次。
更多资源
-
/S :: copy Subdirectories, but not empty ones. /MOV :: MOVe files (delete from source after copying).