使用存储过程中的robocopy将文件夹移动到存档/备份位置



我们有成千上万个文件夹,它们与数据库中的项目有关。例如房屋。当房子售出超过5个月时,我会运行一个sql作业来归档房子,但在这样做时,我需要将相关文件夹移动到归档文件夹中。我可以获得houseid的列表并编写while循环,但它调用了robocopy和我需要的正确命令参数,但仍然有错误日志。我知道我将不得不在循环中为每个房子id启动一个新的机器人副本实例。

示例:上传/House10001,然后用户将房子id 10001存档,所以我需要将文件夹移动到上传存档/House10001.

我如何才能实现自动复制部分并写入错误日志。

而档案馆>0

id=要归档的房屋id

我需要帮助的是这里的机器人。。。

结束时

谢谢大家的帮助。如果有更好的选择,我愿意接受建议。我必须为许多项目做这件事,而不仅仅是像上面例子中那样的一个。

首先,我建议不要从SP运行此程序。原因是您将使用SQL Server堆栈空间而不是单独的进程,并且需要SQL Server服务帐户才能访问您的网络共享。您应该创建一个BATCH文件或包来执行此操作。

您需要调用SQL来获取要移动的文件夹列表,例如:

BCP "Stored Procedure" queryout FolderList.txt -S (local) -T -c

"存储过程"将返回要移动的每个文件夹的完整路径文件夹名称。你可以在FOR循环中使用ROBOCOPY或MOVE,如下所示:

FOR /f  %%a IN (FolderList.txt) DO (
MOVE %%a \destinationfolder
)

最新更新