如何使用批量复制来更新文件?

时间:2010-03-12 17:01:41

标签: batch-file copy-paste

我需要帮助编写批处理文件来更新数据库上的模板。基本上,我们所有的客户都有自己的文件夹,里面有多个模板。由于我办公室的计算机文盲(叹气),没有更好的方法来解决这个问题。但是,我需要一种方法来批量更新这些模板。例如

\\SERVER\New Client Template Folder\Correspondence\Transmittal Letter.WPD

已更新。然后我需要将其复制到:

\\SERVER\Client Files\Client 1\Correspondence;
\\SERVER\Client Files\Client 2\Correspondence;

...等。基本上,我需要复制到\\SERVER\Client Files\\*\\,我需要将其作为一个批处理文件,我可以训练其他人在我离开这份工作时使用。我怎么能这样做?

感谢。

2 个答案:

答案 0 :(得分:1)

Windows的新版本(7和2008 Server R2)具有强大的文件复制工具(robocopy)。这可以安装在XP上,2003也可以使用Resource Kit安装。从本质上讲,robocopy为您提供了一个命令行目录镜像工具,可以帮助您完成您要执行的操作。只需将robocopy命令放入批处理文件(/MIR =镜像目录内容/XJ =忽略联结):

robocopy <source_dir> <destination_dir> /MIR /XJ

答案 1 :(得分:0)

您没有说明您正在使用哪种操作系统。让我猜看它的窗户。我的DOS BAT文件知识有限,但是你 可以尝试用以下内容创建BAT文件:

set Src="\\SERVER\New Client Template Folder\Correspondence\Transmittal Letter.WPD"
set DestA="\\SERVER\Client Files\
set DestB=\Correspondence;"
FOR /F "delims=" %%i IN (distribution.txt) DO copy %Src% %DestA%%%i%DestB%

然后创建一个distribution.txt文件,如:

Client 1
Client 2

运行此BAT文件将读取distribution.txt文件,并为其中的每一行发出复制命令。如下:

COPY "\\SERVER\New Client Template Folder\Correspondence\Transmittal Letter.WPD" "\\SERVER\Client Files\Client 1\Correspondence;"
COPY "\\SERVER\New Client Template Folder\Correspondence\Transmittal Letter.WPD" "\\SERVER\Client Files\Client 2\Correspondence;"

但必须有更好的方法!!!!

通过在DOS提示符下键入FOR,您可以获得有关help for命令的更多帮助。

如果您不喜欢必须构建/维护distribution.txt文件,可以使用DIR /A:D /B "\\SERVER\Client Files\*"将目录列表删除到临时文件中,然后将其用作输入到FOR循环。