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