中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 02:27
48,040 主题排行 / 350,125 发帖 / 今日 1 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]重命名-如何去掉文件名里两个扩展名中的第一个
可打印版本  1,338 / 4
第1楼 samuel 发表于 2007-12-29 09:48
初级用户 发帖 9 积分 22
[已结]重命名-如何去掉文件名里两个扩展名中的第一个
我遇到这样一个问题,用工具下载的一批文件都被加上了一个额外的扩展名。
如:*.shtml 的网页文件下载以后就变成了*.shtml.shtml
我现在希望把这一批文件(在一个文件夹下的多重子目录里)的多余后缀都去掉,如果只用批处理能做到吗?
忙了一晚上都没什么进展,请各位大侠出手相助,万分感激!

[ Last edited by samuel on 2007-12-31 at 10:32 AM ]
第2楼 lxmxn 发表于 2007-12-29 12:05
版主 发帖 4,938 积分 11,386
可以做到,搜索“重命名”。。。
第3楼 samuel 发表于 2007-12-29 12:49
初级用户 发帖 9 积分 22
感谢版主的提示 :D
使用了brglng的解决方法:【重命名目录和子目录中所有符合条件的文件和目录】,感谢brglng :D

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /a /b /s *.shtml.*') do (
set filename=%%~ni
ren "%%i" !filename:~0,-6!%%~xi
)
endlocal
pause
第4楼 abcd 发表于 2007-12-29 12:52
银牌会员 发帖 739 积分 1,436
for /r %%i in (*.shtml) do ren "%%i" "%%~ni"
第5楼 samuel 发表于 2007-12-29 12:55
初级用户 发帖 9 积分 22
感谢楼上的指点:D
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023