Скрипт VBS для поиска всех файлов с определенными расширениями и их копирования в определенное место

Я делаю проект по созданию скрипта для использования на работе для автоматизации одного из наших процессов.

Я бы хотел, чтобы скрипт проверял ввод имени пользователя для поиска по указанному пути профиля пользователя для любых файлов .doc, .docx, .pdf, .pst и т. д. и скопируйте их как есть в созданную папку на сетевом диске.

Мой главный вопрос заключается в том, что такое команда или цепочка команд для проверки папок и подпапок, начинающихся с указанного пути пользователя, на наличие ТОЛЬКО файлов с этими расширениями, и я думаю, скопировать их, но не попадая в ситуацию, когда он просто копирует один и тот же файл снова и снова. снова и снова. Извините, если это сбивает с толку.


person MGMorrison    schedule 25.07.2013    source источник


Ответы (2)


Этот ответ содержит пример кода для рекурсивного обхода дерева папок. Список расширений можно обработать, создав словарь:

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

Обратная косая черта в конце требуется, когда местом назначения является папка, в противном случае вам придется указать полный целевой путь, включая имя целевого файла.

person Ansgar Wiechers    schedule 26.07.2013

Я думаю, что понял большинство требований, и этого легче достичь, используя подход с файлом .BAT в Windows. Этот пакетный (.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

Чтобы запустить файл, просто дважды щелкните по нему или запланируйте его запуск, когда это необходимо.

Дайте мне знать, если это соответствует вашему требованию, я не совсем понял немного о вводе имени пользователя?

person Sudhir    schedule 25.07.2013