Файлы, перенесенные с MAC, должны иметь только архив и скрытые свойства, поэтому, чтобы гарантировать, что вы только заберете их, я бы посоветовал выбирать только те, которые нужно удалить. Команда DEL
имеет параметр /A
, который выбирает файлы для удаления на основе их атрибутов. Как только вы используете опцию /A
, он выбирает все атрибуты, как если бы вы их выбрали. Если вы не исключите какие-либо атрибуты с использованием префикса -
, он удалит их все, (за исключением только для чтения, если только вы не включили параметр /F
) . Например, DEL /F /A ._*
удалит те с R
только для ead, S
ystem, H
iden, A
rchive, un I
ndexed и точками повторной обработки (L
). В этом случае вам нужны те, у кого есть только H
и A
, поэтому для исключения всех остальных вы должны использовать их префикс исключения. Кроме того, поскольку ._*
является глобальным символом подстановки, вы, вероятно, захотите использовать опцию /Q
, чтобы запретить запрашиваемый запрос подтверждения.
Del /S /Q /A:HA-R-S-I-L ._*
В качестве примечательного примечания, если у вас есть MACкаталоги также перенесены, они могут иметь файловых партнеровНапример, готовый к архивированию скрытый каталог .Trashes
будет связан с готовым к архивированию скрытым файлом с именем ._.Trashes
рядом с ним. Они будут удалены с использованием подстановочного знака выше, поэтому, если у вас есть каталоги такого типа, и вы тоже их не удаляете, вы можете использовать другой метод для сохранения своих файлов партнеров.
Выможет сделать это из командной строки через for-loop . (из пакетного файла вам нужно экранировать символы %
с другим, %%
):
For /F "Delims=" %A In ('Dir /B /S /A:HA-D-R-S-I-L ._* 2^>NUL') Do @If Not Exist "%~dpxA\" Del /A "%A"
В этом случае *Команда 1039 * выбирает все файлы, используя ту же методологию, что и используемая команда DEL
, и передает эти файлы в качестве метабарителей в часть Do
. Затем мы удаляем каждый переданный файл, если он не является партнером каталога. Мы можем сделать это, используя только опцию /A
, , потому что DIR
предварительно выбрал только те, которые мы хотим . Чтобы выполнить проверку партнера, мы просто используем простую инструкцию IF NOT EXIST
, помня, что при проверке существования каталога мы используем завершающую обратную косую черту. Проверка выполняется путем расширения каждой мета-переменной %A
до drive:
, \path\
и .extension
с использованием %~dpxA
. Расширение D:\MyDirectory\SubDirectory\._.Trashes
вернет D:\MyDirectory\SubDirectory\.Trashes
, поэтому выполненная проверка будет If Not Exist "D:\MyDirectory\SubDirectory\.Trashes\"
. Если этот каталог не существует, он удаляется с помощью Del /A "D:\MyDirectory\SubDirectory\._.Trashes"
.