批量重命名删除文件名中的第二个字母

批量重命名删除文件名中的第二个字母

我有大约 300 个从 Exchange 2010 导出的 .pst 文件。最终,我将把它们导入另一个 Exchange/AD 环境。在原始环境中,用户名如下:FirstinitialMiddleInitialLastName,即 Bart P. Smith 将是 bpsmith。

在新环境中,用户名是姓氏的首字母。因此,bsmith。

除了手动重命名每个要导入的 pst 文件之外,是否有人知道如何批量重命名目录中的每个文件,并删除文件名中的第二个字母?

提前致谢。

答案1

在 .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.cmdechorename %file% %file:~0,2%%file:~3,999%

不过,使用之前请先进行测试!

答案2

将此内容保存在 .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!
)

相关内容