Como posso obter o prompt de comando para mesclar meus arquivos na ordem do nome?

3

Estou usando o comando copy no prompt de comando para mesclar todos os arquivos em um diretório, para vários diretórios.

O problema é que eu preciso editar o primeiro arquivo em cada diretório antes de mesclar. Isso significa que quando eu coloco o comando "copy / b * .mp3 name.mp3", o arquivo unido tem a parte 2 no início e a parte 1 no final, presumivelmente porque foi criada por último.

Existe uma maneira de usar o comando copy para que os arquivos sejam mesclados na ordem dos nomes? Cada pasta tem um número diferente de partes, de 2 a 1000, então não quero listar cada arquivo com um "+" entre elas.

Idealmente, gostaria de encontrar algo para inserir no comando de cópia que já estou usando. Caso contrário, existe uma maneira de reorganizar os arquivos em uma pasta para que, se você digitar "DIR", a parte 1 apareça primeiro, mesmo que tenha sido editada por último?

    
por Anastasia 23.02.2011 / 18:27

2 respostas

2

Existem maneiras de escrever um arquivo em lote que fará isso iterativamente, mas uma (de muitas) solução simples seria canalizar a saída do comando de diretório para um arquivo de texto, criar um arquivo em lotes para copiar um único item passado na linha de comando para o arquivo desejado, abra o arquivo de texto e cole o comando para chamar o arquivo de lote no início de cada linha.

dir /b *.mp3 > filelist.txt

OR

dir /b /s *.mp3 > filelist.txt

/ b significa saída breve, apenas nomes de arquivos; / s significa subdiretórios também; ">" significa "enviar saída para"

arquivo em lote para copiar o named copymp3.bat:

copy /b name.mp3 + /b %1 name.mp3

O% 1 significa "use o primeiro parâmetro de linha de comando passado".

Classifique a lista como quiser e edite o filelist.txt para que cada linha seja assim:

call copymp3.bat "name of first file in list.mp3"

O comando "call" diz para executar o arquivo em lote e aguardar a conclusão da execução antes de prosseguir para o próximo comando. As cotações são necessárias em torno de cada nome de arquivo, porque os espaços, de outra forma, sinalizam vários parâmetros em vez de um único. Antes de adicionar o comando no começo, faça um "localizar e substituir" para .mp3 e substitua por .mp3 "

Renomeie o arquivo filelist.txt filelist.bat e ele será executado se você clicar com o botão dbl.

google "arquivo cmd do arquivo de lote" para obter mais informações.

Se você tiver milhares de arquivos, isso levará algum tempo para construir o arquivo em lote. Um editor de localização e substituição que reconheça o fim-de-linha seria bastante útil.

TESTE PRIMEIRO em um pequeno subconjunto

    
por 23.02.2011 / 18:43
1

O método mais fácil é usar um diretório temporário.

  1. Crie um diretório temporário (um subdiretório no diretório em que os arquivos de destino estão localizados geralmente é bom)
  2. No Explorer, clique na coluna Nome para classificar os arquivos pelo nome
  3. Selecione todos os arquivos necessários
  4. Mova os arquivos selecionados para o diretório temporário (ou seja, copie e cole-os ou use outro comando de movimentação)

Se você fizer um dir no diretório temporário, verá que a ordem de diretório é alfabética (ou seja, dir == dir /on ) porque essa era a ordem na qual Explorer os moveu. Você pode fazer a mesma coisa para forçar a ordem de diretório a ser por data, tamanho ou qualquer outra coluna que o Explorer tenha. Neste ponto, você pode executar sua ação no diretório temporário e movê-los de volta, ou apenas excluir o diretório antigo (tenha cuidado se o temp estiver dentro do antigo) e renomeie o temporário e mova-o para onde o antigo um foi.

Uma ressalva, porém, você não pode simplesmente classificar e mover os arquivos dentro e fora do mesmo um ou dois diretórios porque entradas de diretório antigas para arquivos podem ser reutilizadas, resultando no que parece ser o diretório "lembrando" a ordem antiga, independentemente de como você as classificou depois. É por isso que você precisa criar um diretório temporário new para usar, porque ele ainda não tem entradas (ou seja, nenhum arquivo excluído).

    
por 28.01.2012 / 10:07