DOS movendo uma extensão de arquivo .xml específica [duplicada]

2

Eu quero mover meus arquivos .xml de um diretório (vamos chamá-lo de "de") para outro (vamos chamá-lo de "para"), mas usar curingas move arquivos indesejados como .xml_. Como posso movê-los enquanto sou específico sobre a extensão ".xml"?

    
por A Box Of Cheese 05.10.2018 / 20:55

2 respostas

2

Como o link de Scott discute, *.xml corresponde a *.xml_ , porque o nome 8.3 termina em .XML (use dir /x para mostrar).

Felizmente, o comando ForFiles não está sujeito a essa excentricidade, portanto você pode usar:

forfiles /m *.xml /c "cmd /c move @path TargetDir\"

Notas:

  • Como move é um comando interno, um cmd separado é necessário para invocá-lo (isso não seria necessário com um comando externo (como xcopy ), como em forfiles /m *.xml /c "xcopy @path TargetDir\" ).
  • Existe uma opção /s , que será recursiva através de subdiretórios, mas não reciclará o diretório de destino: se você quiser que a árvore de origem seja correspondida no destino, será necessário analisar o caminho de origem para encontre o diretório de destino correto, que provavelmente é feito melhor em um arquivo de lote:

    forfiles /m *.xml /c "cmd /c call mover.cmd @relpath TargetDir\"

  • Se você precisar de mover.cmd , deixarei de escrevê-lo como um exercício de script para você.

  • Eu não testei o que acontece quando há espaços nos nomes de arquivos ou diretórios, mas esperaria complicações.
por 05.10.2018 / 22:42
0

Você só poderá mover arquivos .xml usando * .xml como nome de arquivo. Isso resultaria no seguinte comando:
move C:\source\folder\*.xml C:\destination\folder\

    
por 05.10.2018 / 21:07