删除奇怪的文件扩展名

时间:2013-06-06 14:34:50

标签: file batch-file

我有一个文件夹,其中包含一些名称如下所示的文件

0003.4b3d943b8df71af248d12f8b2e7a224a
0004.1874ab60c71f0b31b580f313a3f6e777
0005.1f42bb885de0ef7fc5cd09d34dc2ba54
0006.7a32642f8c22bbeb85d6c3b5f3890a2c
0007.859c901719011d56f8b652ea071c1f8b
.
.
.

我想通过删除这些扩展名重命名这些文件,只需要file name部分即

0003
0004
0005
0006
.
.
.
.

如何使用脚本实现此目的?

4 个答案:

答案 0 :(得分:4)

如果要重命名文件夹中的所有文件,那么您只需要:

ren * *.

有关详细信息,请参阅How does the Windows RENAME command interpret wildcards?

如果文件夹中还有不应重命名的文件(扩展名为“普通”的文件),则以下内容将起作用:

for /f "eol=; delims=" %%F in ('dir /b /a-d *^|findstr /r "\.................................$"') do @ren "%%F" *.

\.匹配点,32 .匹配扩展名的32个字符。 $将正则表达式匹配锚定到该行的末尾。

如果要直接从命令提示符而不是批处理脚本中运行命令,请将每个%%F更改为%F

答案 1 :(得分:3)

您要寻找的是

for %%I in (d:\temp\*) DO ren "%%I" "%%~nI"

其中d:\temp是您要重命名的文件的位置。请注意,您的批处理文件必须位于不同的文件夹中,否则您也将重命名它。另请注意,这会将所有重命名为目标文件夹中的文件。

答案 2 :(得分:3)

试试这个:

for /f "delims=" %%i in ('dir /a-d /b') do echo ren "%%~fi" "%%~ni"

查看输出并删除echo,如果没有问题。

答案 3 :(得分:-1)

使用类似的东西

for /f "delims=" %%A in ('dir /a:-d /b /o:n') do echo %%~nA