中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-23 12:23
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行
DOS批处理 & 脚本技术(批处理室) » 挑战——批量修改后缀名、并同时颠倒文件名
可打印版本  3,052 / 12
第1楼 lujice 发表于 2011-01-22 18:32
新手上路 发帖 13 积分 12
挑战——批量修改后缀名、并同时颠倒文件名
挑战——批量修改后缀名、并同时颠倒文件名

批处理的用途是——
1、把目标文件夹(包含它的所有子目录)里,某类指定后缀名的文件,批量的修改为其它指定的后缀名。
2、同时,把目标文件夹(包含它的所有子目录)里,某类指定后缀名的文件,批量的颠倒文件名。


补充说明——
1、批处理必须要支持:由用户在批处理的运行窗口,自行输入目标文件夹(或拖放获取路径)、原后缀名和新后缀名。
2、目标文件夹的路径,有可能含有空格。
比如“C:\Documents and Settings\Administrator”目录。
3、目标文件夹的路径,有可能含有汉字。
比如“C:\Documents and Settings\Administrator\桌面”目录。
4、目标文件夹的路径,有可能含有特殊字符。
比如"^"和“&”字符。
5、具体改名的例子是:
比如"1234.原后缀名",改名后就变为“4321.新后缀名”
6、双后缀名的情况是:
比如"1234.jpg.原后缀名",改名后就变为“gpj.4321.新后缀名”。
总之,只认最后一个后缀名为真实后缀名。前面的,全部按文件名处理,整体颠倒!
7、批处理必须要支持,对系统或隐藏属性文件的改名。但是,改名后,又必须恢复原来的属性。

[ Last edited by lujice on 2011-1-22 at 20:16 ]
第2楼 lujice 发表于 2011-01-22 18:35
新手上路 发帖 13 积分 12
一个失败的例子
以下代码,支持子目录、支持路径含特殊字符、支持文件名含特殊字符。不支持颠倒文件名、不支持路径含空格、不支持文件名含空格。




[ Last edited by lujice on 2011-1-22 at 18:45 ]
第3楼 lujice 发表于 2011-01-22 19:05
新手上路 发帖 13 积分 12
好奇怪?怎么又支持空格、特殊字符了?
好奇怪?怎么又支持空格、特殊字符了?

以下例子,语法与上大体相同。但是,它就是要支持空格和特殊字符!

百思不得其解......




[ Last edited by lujice on 2011-1-22 at 19:30 ]
第4楼 fsfss 发表于 2011-01-22 21:44
初级用户 发帖 20 积分 22
指定后缀名的文件,批量的颠倒文件名

第5楼 lujice 发表于 2011-01-23 11:03
新手上路 发帖 13 积分 12
以下,是“批处理之家论坛”“tmplinshi ”老大的代码——




试验了!目前还没有发现Bug!!

这个工具,用于禁止(恢复)计算机某些功能的执行。比如禁止(恢复)“我的电脑——右键——管理”、比如禁止(恢复)“文件夹选项”、比如禁止(恢复)控制面板的所有项目、比如禁止(恢复)组策略、比如禁止(恢复)注册表......

呵呵!这种禁止方法,别人还能轻易破解吗???

万分感谢tmplinshi 老大!!

马上回去,抱起论坛的教程,慢慢咀嚼tmplinshi 老大的代码......

再次感谢tmplinshi 老大!!

[ Last edited by lujice on 2011-1-23 at 11:05 ]
第6楼 lujice 发表于 2011-01-23 11:14
新手上路 发帖 13 积分 12
虽然我是一个不折不扣的菜鸟,只会最简单的命令。但是,我敢于尝试......

过两天,我会发一个U盘病毒免疫批处理。有一点原创的DIY,就是加一个把隐私文件藏进去的功能,再加强下防删除、防更名的能力。

高手就不看了,全是用简单命令写的语句。

回去抠脑壳吧
第7楼 modestleaner 发表于 2011-01-23 20:36
初级用户 发帖 27 积分 26
关于楼主和那个LZ贴的代码小菜有点不是很懂,望解答
在设置文件路径那段
set lj=
set /p lj=
是可以把使用这个批处理的人拖进来或者输入的路径赋给LJ
但是后面在输入文件的后缀名的时候还是用了
set q=
或者类似的东西,请问难道可以把后缀也拖进去么?
第8楼 glodboy 发表于 2011-01-24 12:09
新手上路 发帖 11 积分 10
Originally posted by modestleaner at 2011-1-23 20:36:
关于楼主和那个LZ贴的代码小菜有点不是很懂,望解答
在设置文件路径那段
set lj=
set /p lj=
是可以把使用这个批处理的人拖进来或者输入的路径赋给 ...


set lj=
rem 设置变量名称
set /p lj=
rem 把获取的值赋给lj

个人理解,错误的地方请指正。
第9楼 lujice 发表于 2011-01-24 15:43
新手上路 发帖 13 积分 12
菜鸟对代码的说明
Originally posted by modestleaner at 2011-1-23 20:36:
关于楼主和那个LZ贴的代码小菜有点不是很懂,望解答
在设置文件路径那段
set lj=
set /p lj=
是可以把使用这个批处理的人拖进来或者输入的路径赋给 ...



首先申明,我也是个很菜很菜的菜鸟,就连for语句都不怎么懂。共同学习吧!

@echo off(不显示执行命令)
:hsz(本段标签号)
echo.&echo.&echo 请拖放要建立回收站的目录到本窗口!
echo.
set /p mulu=(给变量%mulu%赋值,支持手打输入或拖放)
echo.&echo 请手打输入、或者粘贴输入回收站的名字。
echo.&echo 粘贴的方法是——在批处理的运行窗口点右键。
echo.&echo 如果回收站的名字中,包含空格、特殊字符和汉字,
echo.&echo 则需要在名字的前后加上:英文的双引号—— "
echo.
set /p minzi==(手打输入给变量%minzi%赋值)
md %mulu%\%minzi%(在指定目录下建立指定名字的文件夹)
attrib +s +h %mulu%\%minzi%(更改它的属性为系统、隐藏)
(echo
echo CLSID={645FF040-5081-101B-9F08-00AA002F954E})>%mulu%\%minzi%\desktop.ini(把括号内的字符写入目标文件夹下的“desktop.ini”文件)
attrib +s +h %mulu%\%minzi%\desktop.ini(更改“desktop.ini”文件的属性为系统、隐藏)
echo.&echo 回收站已建立成功!
echo.&echo 打开看看吧!
echo.
pause(暂停)
start "" %mulu%(打开建立回收站的目录)
goto (上级菜单的标签号)

[ Last edited by lujice on 2011-1-24 at 15:47 ]
第10楼 modestleaner 发表于 2011-01-24 18:06
初级用户 发帖 27 积分 26
Originally posted by glodboy at 2011-1-24 12:09:


set lj=
rem 设置变量名称
set /p lj=
rem 把获取的值赋给lj

个人理解,错误的地方请指正。

首先感谢楼上各位的解答,不过恐怕兄台这里理解错了
/p 的作用是允许变量数值设成用户的一行输入。
那个在制定文件夹下建立回收站的倒是看懂了,没懂的还是那句。
第11楼 lujice 发表于 2011-01-24 19:47
新手上路 发帖 13 积分 12
Originally posted by modestleaner at 2011-1-23 20:36:
关于楼主和那个LZ贴的代码小菜有点不是很懂,望解答
在设置文件路径那段
set lj=
set /p lj=
是可以把使用这个批处理的人拖进来或者输入的路径赋给 ...



后缀不能拖进去。把文件拖进去后,显示的是包含文件名的完整路径。除非,你再用退格键,删除多余的字符只留下后缀名。但是这样做,和手打输入后缀名有何区别?

[ Last edited by lujice on 2011-1-24 at 19:49 ]
第12楼 lujice 发表于 2011-01-24 19:48
新手上路 发帖 13 积分 12
Originally posted by modestleaner at 2011-1-23 20:36:
关于楼主和那个LZ贴的代码小菜有点不是很懂,望解答
在设置文件路径那段
set lj=
set /p lj=
是可以把使用这个批处理的人拖进来或者输入的路径赋给 ...



后缀不能拖进去。把文件拖进去后,显示的是包含文件名的完整路径。除非,你再用退格键,删除多余的字符只留下后缀名。但是这样做,和手打输入后缀名有何区别?
第13楼 modestleaner 发表于 2011-01-25 00:48
初级用户 发帖 27 积分 26
Originally posted by lujice at 2011-1-24 19:48:



后缀不能拖进去。把文件拖进去后,显示的是包含文件名的完整路径。除非,你再用退格键,删除多余的字符只留下后缀名。但是这样做,和手打输入后缀名有何区别?

嗯,我知道问价后缀名不能拖进去。我的意思是那么那句话不是多余的么?
既然后缀不能拖进去,只有靠手输入的话。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023