Как исключить типы файлов при рекурсивном копировании в Windows
У меня есть каталог Windows X с подкаталогами x_1...x_100. Каждый из подкаталогов x_i (i=1..100) содержит отдельный файл данных (с различными именами), а также дополнительный файл с именем "annotation.txt", который мне не нужен.
Я хочу скопировать все файлы данных в x_1... x_100 в новый каталог Y, за исключением "annotation.txt", потому что в противном случае мне будет предложено 100 вопросов о перезаписи.
Синтаксис, который я использовал для рекурсивной копии:
for /r "C:<path to X> %x in (*) do move "%x" "C:<path to y>
Что мне нужно добавить, чтобы скопировать все файлы, кроме "annotation.txt" (или, в более общем случае, все файлы, кроме тех, которые содержат некоторые символы подстановки)?
1 ответ
Это звучит как работа для robocopy
, Я не знаю, хотите ли вы перемещать каталоги или только файлы. Увидеть robocopy /?
для деталей об использовании /MOV
или же /MOVE
, /XF
Параметр позволяет исключить файлы.
robocopy C:\source\dir C:\destination\dir * /S /E /MOV /XF annotation.txt
Обновить:
Как насчет использования PowerShell?
Get-ChildItem -Files -Recurse -Path 'C:\source\dir' -Exclude "annotation.txt" |
ForEach-Ohject { Move-Item -Path $_.FullName -Destination 'C:\destination\dir' -WhatIf }