标题: [文件操作] [已解决]批处理如何删除文件名中两个指定字符及其之间的内容? [打印本页]
作者: 130031300 时间: 2015-4-20 17:26 标题: [已解决]批处理如何删除文件名中两个指定字符及其之间的内容?
本帖最后由 pcl_test 于 2016-12-5 13:30 编辑
下载了上千部电影之前都没有改过名,整理硬盘时候发现被太多网站冠名了,手动改很麻烦,用软件改也不能一键完成。
搜索和改写了很多批处理与vbs都不能用,实在不会了来求助大神。
1、文件夹内的文件如下:
【域名被盗,新域名www.new.com】速度与激情6.rmvb
美国狙击手HD中字1280高清[http://dianying6.org].mkv
未来战警BD国语配音中字1024高清{8D电影www.8D.net}.avi
(影www.yd.video.com视)马达加斯加:狐猴之岛.BD中英双字1280高清.mp4
(www.media8video.com)移动迷宫.720p.国英双语.BD中英双字.mov
2、批处理后想要得到的结果如下:
速度与激情6.rmvb
美国狙击手HD中字1280高清.mkv
未来战警BD国语配音中字1024高清.avi
马达加斯加:狐猴之岛.BD中英双字1280高清.mp4
移动迷宫.720p.国英双语.BD中英双字.mov
批量改名要删除括号内包含括号的所有字符,并保留扩展名。
但这些文件的括号都不统一,有些是【】组合,还有些是{}组合,还有些()全角,还有()半角,更离谱的是还有这些排列组合的,例如(和],{和)……
最好能设置开头和结尾,与之间的内容一并删除,批量重命名。
不是要对txt文档内容的修改,是windows里某文件夹下的所有文件名。
弄好几天了都不行,求大神给写个批处理或VBS的代码吧!
作者: pcl_test 时间: 2015-4-20 17:53
把所有可能出现的不同网站符号组合的文件名都列一个出来
作者: 130031300 时间: 2015-4-20 18:03
把所有可能出现的不同网站符号组合的文件名都列一个出来
pcl_test 发表于 2015-4-20 17:53
常用的括号符号就是以上那4种 先不管他混乱组合 碰到这样的手动一下吧
最常用就是【】和[]了!里面的内容不确定,有的直接写域名,有的写文字+域名。我这随便一眼能看到的就好多种:
[电影天堂www.dy2018.com]心花路放DVD中英双字
【6v电影www.dy131.com】杀戮元凶:狙击手BD中英双字1024高清
【最新电影www.66e.cc】达·芬奇密码(导演剪辑版).720p.国英双语.BD中英双字
[www.dy131.com转载]记忆碎片BD中英双字1280高清
【6v电影域名被盗,新地址www.6vhao.com】终极神鹰BD国英音轨中英双字1024高请
[阳光电影www.ygdy8.com].德古拉元年.BD.720p.中英双字幕
机器人帝国.HD中字1280高清【6v电影www.6vhao.net】
【迅雷下载www.dy131.com】平行宇宙2011
【66影视www.66ys.org】铁甲衣BD中英双字1280高清
……
……
……
作者: 130031300 时间: 2015-4-20 18:11
小弟爬楼试改了好多都不行,水平实在有限让大神们见笑了。试过一个改txt里面内容的很好用,不知能不能移植成改文件名的。
如下:
@set @n=0;/* & echo off
dir /b *.txt|cscript -nologo -e:jscript "%~0" ""
exit/b & rem */
arg = WScript.Arguments(0);
fso = new ActiveXObject("Scripting.FileSystemObject");
while (!WSH.StdIn.AtEndOfStream) {
f = WSH.StdIn.ReadLine();
txt = fso.OpenTextFile(f,1).ReadAll();
{
txt = txt.replace(/【[\s\S]*?】/ig,"");
};
fso.OpenTextFile(f,2).Write(txt);
}
作者: 130031300 时间: 2015-4-20 18:14
还爬到过手动往里填的,碰到这样的域名就填写一次在里面,也不是太方便。“敌人”层出不穷,有没有一键杀之的方法……
手动填:
@Echo Off&SetLocal ENABLEDELAYEDEXPANSION
set name=【6v电影www.dy131.com】
FOR %%a in (*) do (
set "name=%%a"
set "name=!name:%name%=!"
ren "%%a" "!name!"
)
作者: cobat 时间: 2015-4-20 18:17
- @echo off
- for /f "delims=" %%a in ('dir/b') do (
- set $=%%a
- setlocal enabledelayedexpansion
- for %%b in (^) ] } ) 】) do (
- if "!$:*%%b=!" NEQ "%%~xa" (
- if "!$:*%%b=!" NEQ "!$!" ren "!$!" "!$:*%%b=!"
- ) else (
- for /f "delims=([{(【" %%c in ("!$!") do (
- ren "!$!" "%%c%%~xa"
- )
- )
- )
- endlocal
- )
- pause
复制代码
作者: 130031300 时间: 2015-4-20 18:24
感谢6楼!非常好用!有多重括号的多执行几次就全“杀”了!碰到重名有提示,真好!
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |