[英]remove strange file extensions
我有一个文件夹,其中包含一些名称如下的文件
0003.4b3d943b8df71af248d12f8b2e7a224a
0004.1874ab60c71f0b31b580f313a3f6e777
0005.1f42bb885de0ef7fc5cd09d34dc2ba54
0006.7a32642f8c22bbeb85d6c3b5f3890a2c
0007.859c901719011d56f8b652ea071c1f8b
.
.
.
我想通过删除这些扩展名来重命名这些文件,并且只需要file name
部分即可。
0003
0004
0005
0006
.
.
.
.
如何使用脚本实现这一目标?
如果要重命名文件夹中的所有文件,那么您需要做的是:
ren * *.
请参阅Windows RENAME命令如何解释通配符? 有关更多信息。
如果文件夹中还有不应该重命名的文件(带有“普通”扩展名的文件),那么以下方法将起作用:
for /f "eol=; delims=" %%F in ('dir /b /a-d *^|findstr /r "\.................................$"') do @ren "%%F" *.
\\.
匹配点和32 .
匹配扩展名的32个字符。 $
将正则表达式匹配项锚定到该行的末尾。
如果要直接从命令提示符而不是批处理脚本中运行命令,请将每个%%F
更改为%F
。
您正在寻找的线是
for %%I in (d:\temp\*) DO ren "%%I" "%%~nI"
其中d:\\temp
是要重命名的文件的位置。 请注意,批处理文件必须位于其他文件夹中,否则也将对其重命名。 另请注意,这将重命名目标文件夹中的所有文件。
尝试这个:
for /f "delims=" %%i in ('dir /a-d /b') do echo ren "%%~fi" "%%~ni"
查看输出并删除echo
,如果可以的话。
使用这样的东西
for /f "delims=" %%A in ('dir /a:-d /b /o:n') do echo %%~nA
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.