中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-09 15:25
47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]新人请教——“批量修改后缀名.bat”的完善
可打印版本  1,947 / 6
第1楼 lujice 发表于 2011-01-21 14:42
新手上路 发帖 13 积分 12
[求助]新人请教——“批量修改后缀名.bat”的完善
代码如下:

@echo off
:0
cls
echo.
echo. ╭────────╮
echo. ╭────┤ 使 用 说 明 ├────╮
echo. │ ╰────────╯ │
echo. │ │
echo. │ 1、本工具的用途是——把指定目录 │
echo. │ 里,某类指定后缀名的文件,批 │
echo. │ 量的修改为其它指定的后缀名。 │
echo. │ │
echo. │ 2、每一步输入完毕,都请敲回车! │
echo. │ │
echo. │ 3、注意——只输入后缀名,不要 │
echo. │ 输入后缀名前的“.” │
echo. │ │
echo. │ 4、文件夹的路径中如有空格和特殊 │
echo. │ 字符,请手打输入,不要拖放! │
echo. │ │
echo. ╰──────────────────╯
echo.&echo 请输入文件夹的路径,或拖放文件夹到本窗口
set LJ=
set /p LJ=
if /i "%LJ%"=="" goto 0
echo.&echo 请输入修改前的后缀名:
set q=
set /p q=
if /i "%q%"=="" goto 0
echo.&echo 请输入修改后的后缀名:
set h=
set /p h=
if /i "%h%"=="" goto 0
cd %LJ%
REN *.%q% *.%h%
echo.&echo. 后缀名已批量修改成功!
echo.&echo. 请打开文件夹看看吧!
start %LJ%
pause
goto 0

这个批处理是我的原创,基本是成功的。

问题是——
1、当文件夹的路径中有空格和特殊字符时,怎么支持拖放?
2、如想同时处理文件夹下所有的子目录时,又该怎么写?
3、为了避免被搜索发现,我还想更进一步:“在批量修改后缀名的同时,批量修改文件名”。
即——在文件名的第一个字符和第二个字符中间,加个数字1。
这又该怎么写?
4、比如,我把“C:\WINDOWS\system32”下,所有的“*.cpl”文件,都改为“后缀名全部统一改为bbb,文件名的第一个字符和第二个字符的中间,则加个数字1”。
这种情况,用批处理恢复原来的文件名和后缀,又该怎么写?

盼高手解答!!

预先感谢了!!!

顿首......
第2楼 lujice 发表于 2011-01-21 14:46
新手上路 发帖 13 积分 12
这个批处理如果用来"禁止使用控制面板",那效果比网上流传的代码,不知好多少......

呵呵呵......
第3楼 Hanyeguxing 发表于 2011-01-21 16:35
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
改cpl扩展名和禁止使用控制面板是两回事
该不能处理的敏感字符依旧不能处理:支持拖放、支持双击、支持过滤、支持拖放时文件与目录混合

[ Last edited by Hanyeguxing on 2011-1-21 at 17:00 ]
第4楼 lujice 发表于 2011-01-21 16:43
新手上路 发帖 13 积分 12
Originally posted by Hanyeguxing at 2011-1-21 16:35:
改cpl扩展名和禁止使用控制面板是两回事
该不能处理的敏感字符依旧不能处理:
第5楼 Hanyeguxing 发表于 2011-01-21 16:54
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
1,没事把bat打包成exe干什么?
2,给你写的示例,难道你还要照抄?

[ Last edited by Hanyeguxing on 2011-1-21 at 17:04 ]
第6楼 xyz1234111 发表于 2011-01-21 20:13
初级用户 发帖 32 积分 32
学习了
说个题外话啊!
寒夜兄,你的这个当爱和恨捆绑的这个图片的效果能用批处理做出来么?
如果能,能不能给个代码看看
第7楼 lujice 发表于 2011-01-22 15:51
新手上路 发帖 13 积分 12
奇怪!
建立回收站怎么又支持空格、和特殊字符?


@echo off
:0
cls
echo.
echo. ╭────────╮
echo. ╭────┤ 使 用 说 明 ├────╮
echo. │ ╰────────╯ │
echo. │ │
echo. │ 1、本工具的用途是——在指定目录 │
echo. │ 里,建立回收站。 │
echo. │ │
echo. │ 2、每一步输入完毕,都请敲回车! │
echo. │ │
echo. │ 3、支持文件夹的名字和路径中含有 │
echo. │ 空格和特殊字符! │
echo. │ │
echo. │ 3、手打输入文件夹的名字和路径、 │
echo. │ 和回收站的名字时,请在前后 │
echo. │ 加上英文的双引号—— " │
echo. │ │
echo. ╰──────────────────╯
echo.&echo 请输入文件夹的路径,或拖放文件夹到本窗口
set mulu=
set /p mulu=
echo.&echo 请输入回收站的名字:
set /p minzi=
md %mulu%\%minzi%>nul 2>nul
attrib +s +h %mulu%\%minzi%>nul 2>nul
(echo [.ShellClassInfo]
echo CLSID={645FF040-5081-101B-9F08-00AA002F954E})>%mulu%\%minzi%\desktop.ini
attrib +s +h %mulu%\%minzi%\desktop.ini
echo.&echo. 回收站已建立成功!
echo.&echo. 手工打开看看吧!
echo.
pause
goto 0
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023