Batch renomeia removendo a segunda letra do nome do arquivo

3

Tenho cerca de 300 arquivos .pst que eu exportei do Exchange 2010. Eventualmente, vou importá-los para outro ambiente do Exchange / AD. No ambiente original, os nomes de usuário são os seguintes: FirstinitialMiddleInitialLastName ou seja, Bart P. Smith seria bpsmith.

No novo ambiente, o nome do usuário é o primeiro nome inicial. Então, bsmith.

Em vez de renomear manualmente cada arquivo pst para importação, alguém sabe uma maneira de renomear em lote cada arquivo no diretório, removendo a segunda letra do nome do arquivo?

Obrigado antecipadamente.

    
por tking 25.10.2012 / 20:23

2 respostas

4

Abra um prompt de comando no diretório em que seus arquivos .pst estão localizados e coloque o seguinte arquivo nesse diretório (salve-o como renamepst.cmd )

@echo off
for %%f in (*.pst) do call :renfile "%%f"
goto :eof

:renfile
set file=%1
echo rename %file% %file:~0,2%%file:~3,999%

Esse arquivo em lote tem um comando echo no lugar para que ele não execute nenhuma ação. Se você estiver satisfeito com a saída depois de executar renamepst.cmd em sua janela do prompt de comando, remova o echo da última linha, deixando rename %file% %file:~0,2%%file:~3,999% no lugar.

Por favor, teste antes de usar isso!

    
por 25.10.2012 / 21:12
0

Salve este conteúdo em um arquivo .bat e lá vai:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set file=
cd C:\test
for %%f in (*.pst) do (
    set file=%%f
    move !file! !file:~0,1!!file:~2,999!
)
    
por 25.10.2012 / 21:48