Если у меня есть файл C:\foo.txt , я хочу рекурсивно найти в C:\OtherDir файлы, соответствующие foo.txt и заменить их на C:\foo.txt .

Это возможно?

1 ответ1

0

Вы можете использовать команду DOS REPLACE

ЗАМЕНИТЕ [d:] [путь] имя файла [d:] [путь] [/A] [/P] [/R] [/S] [/U] [/W]

Назначение: заменяет сохраненные файлы файлами с одинаковыми именами из другого места хранения.

Эта команда заменяет файлы с целевым обозначением пути на файлы с тем же именем в исходном местоположении. Вы можете использовать символы подстановки (? и *) указывать группы имен файлов в исходных каталогах. Вы НЕ МОЖЕТЕ использовать эту команду для замены скрытых файлов или системных файлов.

Опции

/A - добавляет файлы, указанные в обозначении исходного пути, которые НЕ существуют в целевом обозначении пути. Используя эту опцию, вы можете выборочно добавлять файлы в каталог: это не повлияет на файл с исходным обозначением пути, имя которого совпадает с именем файла на целевом обозначении. Этот параметр нельзя использовать в сочетании с параметром /S.

/P - отображает подсказку перед заменой каждого файла, позволяя вам решать для каждого файла в отдельности, разрешить или нет замену.

/R - заменяет файлы только для чтения и незащищенные файлы в целевом каталоге. Без этой опции любая попытка ЗАМЕНИТЬ файл, доступный только для чтения, приведет к сообщению об ошибке, и процесс замены прекратится.

/S - действует как на целевой каталог, так и на все подкаталоги в целевом каталоге. Вы не можете использовать параметр /A вместе с этим параметром.

/U - заменяет файлы на целевом диске или в каталоге, которые старше, чем их аналоги на исходном диске.

/W - ждет, пока вы вставите диск, прежде чем начинать процесс замены.

Примеры

заменить * .dat a: /u

«/ U» очень важно. Это означает "обновить" и говорит команде замены копировать только те исходные файлы, которые (а) также находятся в целевом каталоге и (б) новее, чем их аналоги в целевом каталоге.

Вы также можете использовать замену, чтобы скопировать только те файлы, которые не существуют в каталоге назначения, то есть только новые файлы. Например:

заменить * .dat a: /a

Это интерпретируется как «копирование на диск a: всех файлов в текущем каталоге с расширением« .dat », которых еще нет на диске« a: ».

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

заменить c:\india a:\india /u

заменить c:\india a:\india /a

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .