Como renomeio um grupo de arquivos no Prompt de Comando?

7

Eu tenho um problema com nomes de arquivos. A câmera estúpida que estou usando redefine a sequência de numeração automática de tempos em tempos e, portanto, estou recebendo muitos conflitos se eu tentar colocar muitas fotos em um único arquivo.

Eu sei que há uma maneira de renomeá-los para algo como o seguinte:

1.jpg, 2.jpg, 3.jpg. . . 2000.jpg, etc ...

Infelizmente, estou entre a geração que nunca realmente usou o DOS muito antes de o Windows aparecer com todos os truques falsos. Eu tentei encontrar um aplicativo para fazer isso, mas eles são bastante patéticos, então eu quero apenas fazê-lo no .cmd do Windows ou apenas um .bat simples (que é onde eu encontrei algum controle decente sobre os arquivos). Alguém pode me ajudar com o código?

    
por user1001652 18.10.2011 / 19:11

8 respostas

3
Eu tenho amado a linha de comando desde meados dos anos 80, mas tenho que admitir que essa é uma área onde eu sempre confio em Renomeie-o! Eu sei que você quer o DOS mas eu deixarei este para o caso de alguém tropeçar que não tenha ouvido falar dele.

Durante momentos em que precisei de controle extremo sobre arquivos individuais (geralmente em grupos), usei uma planilha para criar o arquivo em lote. Neste caso, eu uso DIR / B para coletar nomes de arquivos em um arquivo de texto, colá-los em uma coluna, construir o comando renomear em uma coluna final (D neste caso) e colar essa coluna em um arquivo .BAT e executá-lo.

    
por 18.10.2011 / 20:55
12

O arquivo em lote a seguir faz o que você deseja:

@echo off
setlocal EnableDelayedExpansion
set i=0
for %%a in (*.jpg) do (
    set /a i+=1
    ren "%%a" "!i!.new"
)
ren *.new *.jpg

Os arquivos primeiro são renomeados com .new extension para evitar conflitos com os arquivos que estão sendo processados e renomeados para .jpg no final.

    
por 26.10.2011 / 07:16
3

Você pode usar ReNamer e definir as regras lógicas desejadas. Excluir, substituir, limpar, regex, inserir metatags e até mesmo criar scripts para sua regra personalizada.

Abaixo está um exemplo de regras para renomear seqüências de imagens da câmera digital:

  1. Excluir: excluir da posição 1 até o final (ignorar a extensão)
  2. Inserir: insira "Novo nome" como Sufixo (pular extensão)
  3. Serialize: Serialize Incremental a partir de 1 passo 1 repita 1 e imprima ao comprimento 3 como Sufixo (ignore a extensão)

    
por 04.03.2014 / 07:31
1

Isso fará o que você quiser na linha de comando, usando um arquivo de lote:

@echo off
SET COUNT=1
SET PREFIX=Photos
FOR /f "tokens=*" %%G IN ('dir /b *.jpg') DO (call :renum "%%G")
GOTO :eof

:renum
 ren %1 %PREFIX%_%count%.jpg
 set /a count+=1
 GOTO :eof

Com base em algum código de exemplo em SS4 .

    
por 03.11.2011 / 18:38
0

Não é realmente uma questão de programação, ou melhor, algo que pode de alguma forma ser resolvido através do Windows simples. Tanto quanto eu sei, isso só funciona no Windows 7, mas se você selecionar um monte de arquivos, e você pressionar F2 ou Renomear com o botão direito do mouse, você pode renomear o primeiro, e o resto terá o mesmo nome, com (1), (2), (3) e assim por diante anexado a ele. As extensões de arquivo permanecem inalteradas.

    
por 18.10.2011 / 19:16
0

Se a sua câmera marcar as fotos com informações (geralmente tags EXIF), e o relógio da sua câmera é quase ao mesmo exato, você pode usar qualquer um dos variados utilitários de renomeação de arquivos para renomear (e classifique em pastas, se quiser) suas fotos por seus timestamps.

exiv2 é um utilitário de linha de comando que pode fazer o trabalho, e ReNamer do den4b é um utilitário de GUI que fará o trabalho também. ReNamer é um renomeador de propósito geral, não é específico de foto. O exiv2 é basicamente uma ferramenta de manipulação de fotos que também faz renomeação.

    
por 18.10.2011 / 21:15
0

Este aplicativo GUI fará um arquivo sequencial renomeando 01,02,03 ou 0102,0103,0104. É muito antigo, não consegui mais encontrar o site dos autores.

link (156k zip 300k único aplicativo portátil executável chamado renmfl.exe)

Eu uso-o para renomear muitos arquivos para string em ordem. Ele irá carregar classificado como selecionado, em seguida, colocar numeração seqüencial simples nos arquivos carregados (use CTRL A ao selecionar pasta inteira para que todos os arquivos estejam em ordem). Ele também começará em um número específico.

É limitado em comprimento de todos os nomes de arquivos (quantidade de arquivos por vez), devido ao método de carregamento de arquivos. Não permitirá o recurso manuel dos arquivos antes da numeração (apenas alfabética). você também pode colocar uma tag, mas eu nunca usei esse recurso. YoSemiPic401, YoSemiPic402, YoSemiPic403. etc

Ele faz apenas um tipo de renomeação, mas para esse tipo ele faz isso bem, deixa extensões como é, eu uso um programa diferente para isso.

"superb renamer em lote", que é cerca de 10 vezes mais complexo, fará adições sequenciais de numeração na seção Anexar, ou aleatória, ou sobre qualquer outra coisa que você possa imaginar.

link (350k Zip 666k executável portátil, E-mail ware)

Para definir sequências, pressione F2 para entrar no modo avançado, selecione [x] Append para ativá-lo, IN na caixa de entrada de texto com o botão direito, e há uma série de coisas que você pode anexar. Um deles sendo o número classificado.

    
por 19.10.2011 / 00:03
-1

Não é uma questão de programação.

Use o comando REN .

link

    
por 18.10.2011 / 19:15