[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理如何实现将文件名含有两个作者的txt文件单独提取出来

本帖最后由 iIoveyou 于 2022-1-23 21:02 编辑

如何实现将文件名含有两个作者的txt文件单独提取出来
作者和作者中间还有其他文字
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# iIoveyou


    请给出几个真实的文件名以便测试代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


   
例如:
《鉴证寻踪》作者:谙桥》作者:谙桥
《谋杀禁忌》作者:黑眼圈》作者:黑眼圈
《浮生物语》作者:裟椤双树》作者:裟椤双树

大概是这样
由于操作失误导致一些文件的作者名字出现了两次 混在了8w多文件里

TOP

本帖最后由 qixiaobin0715 于 2022-1-22 21:28 编辑

回复 3# iIoveyou
可以试试直接修改文件名。
下面代码运行后如果显示正确,去掉第4行的echo再运行代码,直接修改文件名即可:
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b /a-d *作者:*作者:*.txt') do (
  3.     for /f "tokens=1,3 delims=:" %%i in ("%%a") do (
  4.         echo ren "%%a" "%%i:%%j"
  5.     )
  6. )
  7. pause
复制代码

TOP

回复  iIoveyou
可以试试直接修改文件名。
下面代码运行后如果显示正确,去掉第4行的echo再运行代码,直 ...
qixiaobin0715 发表于 2022-1-22 21:22



但是电脑改完还要重新把文件上传网盘再下载到手机里 太麻烦了
出问题的文件不多 我只想在电脑里找出来 然后在手机里挨个改一下

TOP

回复 5# iIoveyou
  1. @echo off
  2. dir /b /a-d *作者*作者*.txt
  3. pause
复制代码
1

评分人数

TOP

  1. //&cls&dir /a-d/b /s *.txt|cscript -nologo -e:jscript "%~f0"&pause&exit
  2. var fso = new ActiveXObject('Scripting.FileSystemObject');
  3. while(!WSH.StdIn.AtEndOfStream){
  4.     var line = WSH.StdIn.ReadLine();
  5.     var file = fso.GetFile(line);
  6.     var name = fso.GetBaseName(line).replace(/(《[^》]+》)作者:([^》]+)》作者:\2/g, '$1作者:$2');
  7.     var ext = '.'+fso.GetExtensionName(line);
  8.     if(name&&!fso.FileExists(file.ParentFolder+'\\'+name+ext))file.Name=name+ext;
  9. }
复制代码
论坛有类似改名规则,修改了下,保存ANSI编码的BAT运行即可

TOP

返回列表