Ir ao conteúdo
  • Cadastre-se

Comando Rename no DOS


Visitante

Posts recomendados

Preciso alterar o nome padrão de milhares de arquivos que se encontram em uma pasta para outro nome padrão. Por exemplo tenho arquivos com o nome:

ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0001

ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0002

ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0003

e daí por diante...

e quero alterar esse conjunto para:

ACE_APEMATACR_CAIXADTC_19951018PAG_00001

ACE_APEMATACR_CAIXADTC_19951018PAG_00002

ACE_APEMATACR_CAIXADTC_19951018PAG_00003

Notem que eu tirei o " - " depois de PAG_ e coloquei mais um algarismo na paginação, ao invés de 0001 está 00001(pois há previsão que se chegue ao número 10000)

Como deve ser o comando RENAME no DOS para efetuar a troca de nomes em lote com êxito?

Caso não seja possível pelo RENAME, apenas por batch, como devo fazer o BATCH?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Preciso alterar o nome padrão de milhares de arquivos que se encontram em uma pasta para outro nome padrão. Por exemplo tenho arquivos com o nome:

ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0001

ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0002

ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0003

e daí por diante...

e quero alterar esse conjunto para:

ACE_APEMATACR_CAIXADTC_19951018PAG_00001

ACE_APEMATACR_CAIXADTC_19951018PAG_00002

ACE_APEMATACR_CAIXADTC_19951018PAG_00003

Notem que eu tirei o " - " depois de PAG_ e coloquei mais um algarismo na paginação, ao invés de 0001 está 00001(pois há previsão que se chegue ao número 10000)

Como deve ser o comando RENAME no DOS para efetuar a troca de nomes em lote com êxito?

Caso não seja possível pelo RENAME, apenas por batch, como devo fazer o BATCH?

que me lembre o ren não tem capacidade para multitarefas

no caso você poderia usar o editor do DOS ou o próprio notepad do windows.

faça o seguinte. primeiro teste um dos arquivos..... faça o renomeamento dele. Funcionou? cole "exatamente" o comando pro arquivo bat, e vá atualizando

tu podes, ainda, usar o excel, se esses forem sequenciais, criar uma sequencia lá... e depois copiar/colar o resto do comando.....

depois pegue esse texto e salve ele com a extensão .BAT, e tente executar.

Peço pra testar porque o DOS "puro", até o 6.22 trabalhava com dotação 8.3 (oito caracteres pro nome e 3 pra extensão) e pelo que postas é DOS emulado (a partir do windows 95) daí eu não lembro, de cabeça, se o .bat aceitará 8.3 ou tudo, por isso teste antes

Link para o comentário
Compartilhar em outros sites

André,

Preciso alterar o nome padrão de milhares de arquivos que se encontram em uma pasta para outro nome padrão. Por exemplo tenho arquivos com o nome:

ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0001

ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0002

ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0003

e daí por diante...

e quero alterar esse conjunto para:

ACE_APEMATACR_CAIXADTC_19951018PAG_00001

ACE_APEMATACR_CAIXADTC_19951018PAG_00002

ACE_APEMATACR_CAIXADTC_19951018PAG_00003

Notem que eu tirei o " - " depois de PAG_ e coloquei mais um algarismo na paginação, ao invés de 0001 está 00001(pois há previsão que se chegue ao número 10000)

Como deve ser o comando RENAME no DOS para efetuar a troca de nomes em lote com êxito?

Dê uma olhada no script abaixo. Copie e cole num .BAT ou .CMD e coloque-o na pasta onde encontram-se os arquivos a serem renomeados.

Ao executá-lo (no Prompt de Comando), você terá a oportunidade de ver como o comando RENAME será invocado pelo script, pois eu mando imprimir a linha de comando completa com echo.

Após examinar e concluir que está tudo OK, remova o echo (em destaque) do script abaixo para que o RENAME seja de fato chamado pelo script.

Fiz algumas simulações por aqui e correu tudo bem. Abaixo, você tem um exemplo de saída do script.

@echo off

SETLOCAL EnableDelayedExpansion

For /R %%i in (ACE*) do (
set oldfn="%%~ni"
set newfn=!oldfn:PAG_ - =PAG_0!
IF NOT !newfn!==!oldfn! (
[B][U]echo[/U][/B] rename !oldfn! !newfn!
)
)

ENDLOCAL

Exemplo de saída:

rename "ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0001" "ACE_APEMATACR_CAIXADTC_19951018PAG_00001"

rename "ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0002" "ACE_APEMATACR_CAIXADTC_19951018PAG_00002"

rename "ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0003" "ACE_APEMATACR_CAIXADTC_19951018PAG_00003"

rename "ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0004" "ACE_APEMATACR_CAIXADTC_19951018PAG_00004"

rename "ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0005" "ACE_APEMATACR_CAIXADTC_19951018PAG_00005"

rename "ACE_APEMATACR_CAIXADTC_19951018PAG_ - 0006" "ACE_APEMATACR_CAIXADTC_19951018PAG_00006"

rename "ACE_APEMATACR_CAIXADTC_19951018PAG_ - 9999" "ACE_APEMATACR_CAIXADTC_19951018PAG_09999"

Espero que ajude, ;)

LNW

Link para o comentário
Compartilhar em outros sites

André,

Dê uma olhada no script abaixo. Copie e cole num .BAT ou .CMD e coloque-o na pasta onde encontram-se os arquivos a serem renomeados.

Ao executá-lo (no Prompt de Comando), você terá a oportunidade de ver como o comando RENAME será invocado pelo script, pois eu mando imprimir a linha de comando completa com echo.

Após examinar e concluir que está tudo OK, remova o echo (em destaque) do script abaixo para que o RENAME seja de fato chamado pelo script.

Fiz algumas simulações por aqui e correu tudo bem. Abaixo, você tem um exemplo de saída do script.

@echo off

SETLOCAL EnableDelayedExpansion

For /R %%i in (ACE*) do (
set oldfn="%%~ni"
set newfn=!oldfn:PAG_ - =PAG_0!
IF NOT !newfn!==!oldfn! (
[B][U]echo[/U][/B] rename !oldfn! !newfn!
)
)

ENDLOCAL

Exemplo de saída:

Espero que ajude, ;)

LNW

LNW você parece estar certo, mas como eu sou péssimo com isso não consegui fazer o que você sugeriu.

O que eu fiz:

-peguei esse código que você postou e colei no bloco de notas.

-Salvei esse arquivo como rename.bat

-colei esse arquivo dentro da pasta onde estão os arquivos que eu quero renomear em lote

-entrei no comando do DOS e acessei a pasta onde estão os arquivos que quero renomear.

Até agora fiz certo?

Então, aí que entra minha dificuldade, não sei como executar isso no DOS.

Link para o comentário
Compartilhar em outros sites

LNW você parece estar certo, mas como eu sou péssimo com isso não consegui fazer o que você sugeriu.

O que eu fiz:

-peguei esse código que você postou e colei no bloco de notas.

-Salvei esse arquivo como rename.bat

-colei esse arquivo dentro da pasta onde estão os arquivos que eu quero renomear em lote

-entrei no comando do DOS e acessei a pasta onde estão os arquivos que quero renomear.

Até agora fiz certo?

Então, aí que entra minha dificuldade, não sei como executar isso no DOS.

Sim, basta digitar "rename.bat" e ele vai listar na tela a linha de comando real que seria chamada (como mostrei acima, na segunda citação).

Confira, se ver que está tudo em ordem, edite (o .bat) novamente e remova aquele echo para que o rename seja de fato invocado.

[]'s

LNW

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...