Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
andrekata84

Comando Rename no DOS

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites
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

Compartilhar este post


Link para o post
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

  • Curtir 1

Compartilhar este post


Link para o post
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

simplesmente digita o nome do arquivo.bat

ele fará automaticamente.

até pelo windows dá pra executar ele

Compartilhar este post


Link para o post
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

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×