VBS脚本用于查找某些扩展名的所有文件并将其复制到特定目标

时间:2013-07-25 18:19:31

标签: vbscript copy directory locate

我正在制作一个项目,创建一个在工作中使用的脚本来自动化我们的一个过程。

我希望脚本检查用户名的输入,以搜索.doc,.docx,.pdf,.pst等任何文件的指定用户配置文件路径。并将它们原样复制到网络驱动器位置上的已创建文件夹中。

我的主要问题是检查从指定用户路径开始的文件夹和子文件夹的命令或命令链是什么,对于带有这些扩展名的JUST文件,我想复制它们但没有遇到只复制它们的情况一遍又一遍地提交文件。对不起,如果那令人困惑。

2 个答案:

答案 0 :(得分:1)

This answer提供了递归遍历文件夹树的示例代码。可以通过创建字典来处理扩展列表:

Set extensions = CreateObject("Scripting.Dictionary")
extensions.CompareMode = vbTextCompare  'case-insensitive
extensions.Add "doc", True
extensions.Add "docx", True
extensions.Add "pdf", True
extensions.Add "pst", True
...

然后检查已处理文件的扩展名,如下所示:

For Each f In fldr.Files
  If extensions.Exists(objFso.GetExtensionName(f.Name)) Then
    f.Copy targetFolder & "\"
  End If
Next

目标是文件夹时需要尾随反斜杠,否则您必须指定包含目标文件名的完整目标路径。

答案 1 :(得分:0)

我认为我已经理解了大部分要求,并且通过在Windows中使用.BAT文件方法可以更容易地实现这一点。此批处理(.Bat)文件可以运行复制/删除等命令。

因此,创建一个名为test.bat的文件,并在文件中添加以下脚本:

::XCOPY source [destination]
XCOPY "C:\Temp\*.doc" "C:\Temp\another"

这是做什么的?好吧,它使用XCOPY命令复制C:\Temp目录中具有.doc扩展名的任何文件。这些文件将被复制到名为C:\Temp\another的文件夹中。

XCOPY有两个主要参数:源和目标。 Source是文件当前所在的位置,目标是您要将文件复制到的位置。有关所有可用选项的更多信息,请访问:

http://support.microsoft.com/kb/240268

要运行该文件,只需双击它,或安排它在需要时运行。

如果这符合您的要求,请告诉我,我对用户名的输入并不完全了解吗?