1

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

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

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

0003
0004
0005
0006
.
.
.
.

如何使用脚本来实现这一点?

4

4 回答 4

4

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

ren * *.

请参阅Windows RENAME 命令如何解释通配符?了解更多信息。

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

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

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

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

于 2013-06-06T15:11:09.680 回答
3

您正在寻找的线路是

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

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

于 2013-06-06T14:49:55.667 回答
3

尝试这个:

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

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

于 2013-06-06T14:51:21.500 回答
-1

使用这样的东西

for /f "delims=" %%A in ('dir /a:-d /b /o:n') do echo %%~nA
于 2013-06-06T14:42:44.157 回答