Назад | Перейти на главную страницу

Используйте robocopy, чтобы копировать только файлы, а не папки

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

Пока у меня есть:

robocopy "<source>" "<target>" /s /copyall

Пример: у меня есть C: \ 1 \ 2 \ 3.txt и C: \ 4 \ 5 \ 6.jpg, а в моей цели мне нужны только D: \ target \ 3.txt и D: \ target \ 6.jpg

Любые идеи?

Как уже было сказано в комментариях, вы можете легко добиться этого с помощью Powershell:

Get-ChildItem -Recurse -File -Filter "*.txt" $source |
  Where-Object { $_.LastAccessTime -gt (get-date -date "2018-12-01 00:00:00") } |
  Copy-Item -Destination $target

Это работает Get-ChildItem рекурсивно, ищем только файлы, соответствующие фильтру *.txt. После этого результат фильтруется LastAccessTime атрибут файла и сохраняются только файлы новее даты X. Результат этого передается в Copy-Item.

Конечно, вы также можете запустить robocopy в конце, но это становится довольно излишним.