Назад | Перейти на главную страницу

Пакетное переименование с удалением второй буквы в имени файла

У меня около 300 файлов .pst, которые я экспортировал из Exchange 2010. В конце концов, я собираюсь импортировать их в другую среду Exchange / AD. В исходной среде имена пользователей выглядят следующим образом: FirstinitialMiddleInitialLastName, то есть Барт П. Смит будет bpsmith.

В новой среде имя пользователя - это первая начальная фамилия. Итак, bsmith.

Вместо того, чтобы вручную переименовывать каждый файл pst для импорта, знает ли кто-нибудь способ пакетного переименования каждого файла в каталоге, удаляя вторую букву в имени файла?

Заранее спасибо.

Откройте командную строку в каталоге, в котором находятся ваши PST-файлы, и поместите в этот каталог следующий файл (сохраните его как 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%

Этот командный файл имеет echo на месте, чтобы она фактически не выполняла никаких действий. Если вы довольны результатом после запуска renamepst.cmd в окне командной строки, затем удалите echo из последней строки, оставив rename %file% %file:~0,2%%file:~3,999% на месте.

Пожалуйста, проверьте это перед использованием!

Сохраните этот контент в .bat-файле и готово:

@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!
)