Мне нужно скопировать все *.doc
файлы (но не папки, имена которых соответствуют *.doc
) из сетевой папки \\server\source
(включая файлы во всех вложенных папках) в локальную папку C:\destination
без сохранения вложенных папок иерархии (т.е. все файлы должны идти непосредственно в C:\destination
, и никакие вложенные папки не должны создаваться в C:\destination
). Если есть несколько файлов с одинаковыми именами из разных подпапок \\server\source
, только первый должен быть скопирован и никогда не перезаписан - все конфликтующие файлы, найденные позже, должны быть пропущены (может быть много случаев, подобных этому, и пропущенные файлы не должны быть перенесены по сети, иначе это займет слишком много времени). Вот моя попытка реализовать его в PowerShell:
cp \\server\source\* -Recurse -Include *.doc -Container:$false -Destination C:\destination
Есть две проблемы с этой командой:
- Он копирует папки, имена которых также соответствуют
*.doc
. - В случае конфликтующих имен любой файл, найденный позже, передается по сети и перезаписывает предыдущий файл.
Можете ли вы предложить, как исправить эти проблемы?
Реализации с использованием copy
, xcopy
, robocopy
, cscript
или *.bat
, *.cmd
также приветствуются.
Локальная ОС - это Windows 8, а файловая система - NTFS.