Пакетное перемещение файлов в подкаталоги, исключая родительский каталог

Пакетное перемещение файлов в подкаталоги, исключая родительский каталог

У меня есть файл *otf, который я хотел бы скопировать во все подкаталоги родительской папки. Это то, что я попытался сделать.

for /R %%x in (.) do copy "file.otf" "%%x"

Это работает в большинстве случаев, но также оставляет копию в родительской папке. Я хотел бы исправить это, чтобы пакет копировал только во все подкаталоги.

решение1

Мне не удалось заставить ваш код работать на Microsoft Windows [Версия 10.0.17134.648]. Следующий код работает.

тест:

for /f "tokens=*" %%x in ('dir /b /s /ad "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\"') do echo copy /y "file.otf" to "%%x\"

копия:

for /f "tokens=*" %%x in ('dir /b /s /ad "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\"') do copy /y "file.otf" "%%x\"

удалить file.otf из подкаталогов:

for /f "tokens=*" %%x in ('dir /b /s /ad "path-to-parent-folder-with-double-quotes-if-there-is-a-space-in-the-path\"') do del /q "%%x\file.otf"

tokens=* учитывает пробелы в пути/имени файла

"tokens=*"

dir /b /s /ad копирует файл в каталог, а не в файл. Без /ad file.otr перезапишет все файлы в каталоге.Если вас что-то беспокоит, используйте copy вместо copy /y.

dir /b /s /ad

copy /y перезаписывает file.otr без запроса разрешения. Вам придется попробовать пару раз, прежде чем вы будете удовлетворены тем, что это работает.

copy /y

Вместо того, чтобы «исправлять» свой код, почему бы вам просто не удалить file.otr в родительском каталоге?

del /q file.otr

Связанный контент