标题: [文本处理] [已解决]批处理如何实现将文件名含有两个作者的txt文件单独提取出来 [打印本页]
作者: iIoveyou 时间: 2022-1-22 18:50 标题: [已解决]批处理如何实现将文件名含有两个作者的txt文件单独提取出来
本帖最后由 iIoveyou 于 2022-1-23 21:02 编辑
如何实现将文件名含有两个作者的txt文件单独提取出来
作者和作者中间还有其他文字
作者: Batcher 时间: 2022-1-22 20:26
回复 1# iIoveyou
请给出几个真实的文件名以便测试代码
作者: iIoveyou 时间: 2022-1-22 20:38
回复 2# Batcher
例如:
《鉴证寻踪》作者:谙桥》作者:谙桥
《谋杀禁忌》作者:黑眼圈》作者:黑眼圈
《浮生物语》作者:裟椤双树》作者:裟椤双树
大概是这样
由于操作失误导致一些文件的作者名字出现了两次 混在了8w多文件里
作者: qixiaobin0715 时间: 2022-1-22 21:22
本帖最后由 qixiaobin0715 于 2022-1-22 21:28 编辑
回复 3# iIoveyou
可以试试直接修改文件名。
下面代码运行后如果显示正确,去掉第4行的echo再运行代码,直接修改文件名即可:- @echo off
- for /f "delims=" %%a in ('dir /b /a-d *作者:*作者:*.txt') do (
- for /f "tokens=1,3 delims=:" %%i in ("%%a") do (
- echo ren "%%a" "%%i:%%j"
- )
- )
- pause
复制代码
作者: iIoveyou 时间: 2022-1-23 13:31
回复 iIoveyou
可以试试直接修改文件名。
下面代码运行后如果显示正确,去掉第4行的echo再运行代码,直 ...
qixiaobin0715 发表于 2022-1-22 21:22
但是电脑改完还要重新把文件上传网盘再下载到手机里 太麻烦了
出问题的文件不多 我只想在电脑里找出来 然后在手机里挨个改一下
作者: qixiaobin0715 时间: 2022-1-23 18:02
回复 5# iIoveyou - @echo off
- dir /b /a-d *作者*作者*.txt
- pause
复制代码
作者: xp3000 时间: 2022-1-23 18:30
- //&cls&dir /a-d/b /s *.txt|cscript -nologo -e:jscript "%~f0"&pause&exit
- var fso = new ActiveXObject('Scripting.FileSystemObject');
- while(!WSH.StdIn.AtEndOfStream){
- var line = WSH.StdIn.ReadLine();
- var file = fso.GetFile(line);
- var name = fso.GetBaseName(line).replace(/(《[^》]+》)作者:([^》]+)》作者:\2/g, '$1作者:$2');
- var ext = '.'+fso.GetExtensionName(line);
- if(name&&!fso.FileExists(file.ParentFolder+'\\'+name+ext))file.Name=name+ext;
- }
复制代码
论坛有类似改名规则,修改了下,保存ANSI编码的BAT运行即可
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |