想要在批处理文件中自动将我们每月在网络驱动器的新文件夹中收到的一组文本文件复制到另一个网络驱动器,并自动替换那里的任何现有文件。
背景信息:我们每个月的第二周都会收到一份数据文件摘录,总共有 14 个,放在一个标有此命名约定的文件夹中,数据库文件yyyymmdd,在我们的一个共享驱动器(\\server1\receptacle
)上。收到后,另一个团队验证数据,然后通知我们的团队他们已准备好将其加载到现有的 Oracle 表中。我们将文件(而不是文件夹)复制到另一个网络驱动器(\\server2\loading
)并启动脚本。
当然,新文件夹的标题与提取的数据文件的日期相同。创建一个 .bat 文件,然后我们可以启动它来自动执行复制任务,这是我们的目标,但新文件夹名称的变化让我在编写脚本时感到困惑。任何帮助都值得感激。
编辑:也许我在将文件复制到另一个驱动器时试图找出一种方法来发现并编写 \receptable 中最近创建的文件夹的名称。
答案1
这听起来像您想要一定程度的手动控制,以便您的团队可以先检查它。
使批处理文件和启动脚本都将文件夹的名称作为(命令行)参数,然后使用可用于复制的文件夹名称调用批处理文件,然后将其传递给启动脚本。
您可以为资源管理器上下文菜单创建自定义的“发送到”目标,以便只需选择并单击即可。
如果您需要监视文件夹的情况,请为第一团队创建一个新文件夹,将文件放入其中,称为“已验证”,并让您的批处理文件确保已验证文件夹中只有一个作业。也许使用“金丝雀文件”类型的设置,以便在文件传输时作业不会启动。
如果您需要在“加载”中镜像“插座”文件夹,请使用 robocopy 以避免不必要的重新复制。