我正在通过创建一个脚本来制作一个项目,以便在工作中使用它来自动化我们的一个流程。
我希望脚本检查用户名的输入,以在指定的用户配置文件路径中搜索 .doc、.docx、.pdf、.pst 等任何文件。并将它们原样复制到网络驱动器位置上创建的文件夹中。
我的主要问题是检查从指定用户路径开始的文件夹和子文件夹的命令或命令链是什么一遍又一遍地。对不起,如果这令人困惑。
这个答案提供了递归遍历文件夹树的示例代码。可以通过创建字典来处理扩展列表:
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
当目标是文件夹时,尾随反斜杠是必需的,否则您必须指定完整的目标路径,包括目标文件名。
我想我已经了解了大部分要求,这可以通过在 Windows 中使用 .BAT 文件方法更轻松地实现。此批处理 (.Bat) 文件可以运行复制/删除等命令。
因此,创建一个名为 test.bat 的文件,并在文件中添加以下脚本:
::XCOPY source [destination]
XCOPY "C:\Temp\*.doc" "C:\Temp\another"
这是做什么的?好吧,它使用XCOPY
命令来复制目录C:\Temp
中具有 .doc 扩展名的任何文件。这些文件将被复制到一个名为C:\Temp\another
.
需要两个主要参数:XCOPY
源和目标。源是文件当前所在的位置,目标是您要将文件复制到的位置。有关所有可用选项的更多信息,请访问:
http://support.microsoft.com/kb/240268
为了运行该文件,只需双击它,或安排它在需要时运行。
让我知道这是否符合您的要求,我不完全了解有关输入用户名的内容?