Lote para mover o arquivo para subdiretórios, excluindo o diretório pai

Lote para mover o arquivo para subdiretórios, excluindo o diretório pai

Eu tenho um arquivo *otf que gostaria de copiar para todos os subdiretórios da pasta pai. Isto é o que eu tentei.

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

Isso funciona na maior parte, mas também deixa uma cópia na pasta pai. Eu gostaria de uma correção para isso, de modo que o lote apenas copiasse em todos os subdiretórios.

Responder1

Não consegui fazer seu código funcionar no Microsoft Windows [versão 10.0.17134.648]. O código a seguir funciona.

teste:

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\"

cópia de:

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\"

exclua file.otf dos subdiretórios:

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=* cuida dos espaços no caminho/nome do arquivo

"tokens=*"

dir /b /s /ad copia o arquivo para um diretório e não para um arquivo. Sem /ad file.otr substituirá todos os arquivos no diretório.Use copy em vez de copy /y se estiver preocupado.

dir /b /s /ad

copy /y substitui file.otr sem pedir permissão. Você certamente tentará algumas vezes antes de ter certeza de que está funcionando.

copy /y

Em vez de "consertar" seu código, por que você simplesmente não exclui file.otr do diretório pai?

del /q file.otr

informação relacionada