楼 主
[求助]新人请教——“批量修改后缀名.bat”的完善
发表于 2011-01-21 14:42 · 中国 四川 成都 电信
新手上路
★
积分 12 发帖 13 注册 2010-03-03 10:47 16年会员 UID 161489 性别 男
状态 离线
代码如下:
@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 楼
发表于 2011-01-21 14:46 · 中国 四川 成都 电信
新手上路
★
积分 12 发帖 13 注册 2010-03-03 10:47 16年会员 UID 161489 性别 男
状态 离线
这个批处理如果用来"禁止使用控制面板",那效果比网上流传的代码,不知好多少......
呵呵呵......
第 3 楼
发表于 2011-01-21 16:35 · 中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039 发帖 897 注册 2009-03-01 15:34 17年会员 UID 140302 性别 男 来自 在地狱中仰望天堂
状态 离线
改cpl扩展名和禁止使用控制面板是两回事
该不能处理的敏感字符依旧不能处理:支持拖放、支持双击、支持过滤、支持拖放时文件与目录混合
@echo off
rem 设置源扩展名
set x0=.bat
rem 设置目标扩展名
set x1=.cmd
rem 设置插入字符
set c=1
echo 开始
if "%~1"=="" (
set m=1
goto:b
)
:a
set "a=%~a1"
if "%a:~0,1%"=="-" set d==
if defined d (
if /i "%~x1"=="%x0%" (
set "a=%~n1%x1%"
setlocal enabledelayedexpansion
ren "%~1" "!a:~0,1!%c%!a:~1!"
endlocal
) else echo 未处理;"%~1"
)
:b
if not defined m set n="%~1\"
if not defined d for /r %n% %%a in (*) do if /i "%%~xa"=="%x0%" (
set "a=%%~na%x1%"
setlocal enabledelayedexpansion
ren "%%a" "!a:~0,1!%c%!a:~1!"
endlocal
) else echo 未处理;"%%a"
if defined m goto:end
shift
set d=
if not "%~1"=="" goto:a
:end
echo;完成
pause
[
Last edited by Hanyeguxing on 2011-1-21 at 17:00 ]
第 4 楼
发表于 2011-01-21 16:43 · 中国 四川 成都 电信
新手上路
★
积分 12 发帖 13 注册 2010-03-03 10:47 16年会员 UID 161489 性别 男
状态 离线
Originally posted by Hanyeguxing at 2011-1-21 16:35:
改cpl扩展名和禁止使用控制面板是两回事
该不能处理的敏感字符依旧不能处理:@echo off
rem 设置源扩展名
set x0=.bat
rem 设置目标扩展名
set x1=.c ...
1、首先,谢谢!!
2、我试验过,把“C:\WINDOWS\system32”下,所有的“*.cpl”文件,后缀名都改为bbb后,任何控制面板项目,都不能使用!
3、网上流传的,通过修改注册表来禁止控制面板的方法,有的机子无效。比如我本人的机子。
4、最难的是——如何用批处理改回来,您有好的代码吗?
5、还有,您的代码不能打包为exe后,交给菜鸟使用。而我的代码可以
[
Last edited by lujice on 2011-1-21 at 16:45 ]
第 5 楼
发表于 2011-01-21 16:54 · 中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039 发帖 897 注册 2009-03-01 15:34 17年会员 UID 140302 性别 男 来自 在地狱中仰望天堂
状态 离线
1,没事把bat打包成exe干什么?
2,给你写的示例,难道你还要照抄?
[ Last edited by Hanyeguxing on 2011-1-21 at 17:04 ]
第 6 楼
发表于 2011-01-21 20:13 · 中国 广东 深圳 电信
初级用户
★
积分 32 发帖 32 注册 2010-10-29 05:31 15年会员 UID 176702 性别 男
状态 离线
学习了
说个题外话啊!
寒夜兄,你的这个当爱和恨捆绑的这个图片的效果能用批处理做出来么?
如果能,能不能给个代码看看
第 7 楼
发表于 2011-01-22 15:51 · 中国 四川 成都 电信
新手上路
★
积分 12 发帖 13 注册 2010-03-03 10:47 16年会员 UID 161489 性别 男
状态 离线
奇怪!
建立回收站怎么又支持空格、和特殊字符?
@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学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正