Mover vários arquivos para diretórios diferentes via linha de comando

1

Estou apenas experimentando a linha de comando e queria saber se havia uma maneira de fazer esse comando funcionar:

nota: o diretório onde estou movendo esses arquivos tem os subdiretórios bmps, gifs e tifs já criados. Eu percebi anteriormente que não havia como criar um diretório usando o comando move lol.

move swag.gif, swag.bmp, swag.tif bmps, gifs, tifs
    
por sdx 20.01.2016 / 20:02

1 resposta

1

Não, você não pode fazer isso. A sintaxe do comando Mover não permite vários destinos. No seu caso, o destino é tifs .

No entanto, você pode obter o efeito desejado usando o comando for :

for %E in (gif bmp tif) do (
    for %F in (*.%E) do echo move %F %Es
)

O loop externo especifica a extensão em %E , em seguida, o loop interno interage sobre todos os arquivos que correspondem ao padrão *.%E , em que é uma das extensões. O nome do arquivo atual é armazenado em %F . Em seguida, o arquivo é movido para o diretório %E com a adição de s criando gifs

Observação: eu adicionei o comando echo para evitar mover os arquivos, em vez disso, os "comandos de movimentação" são impressos na tela. Remova echo para executar move .

Outra abordagem é usar uma expansão especial:

for %F in (*.gif *.bmp *.tif) do echo move %F %~xFs

Nesse caso, %~xF se expande para a extensão do arquivo, mas começa com . : .gif . Portanto, esta solução não pode ser usada imediatamente. (Eu não encontrei rapidamente como remover o ponto para obter extensão "nua").

    
por 20.01.2016 / 21:31