找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 8540|回复: 2

【完成】50元求修改epub名字

  [复制链接]
发表于 2024-10-4 14:14:59 | 显示全部楼层 |阅读模式
本帖最后由 lxh623 于 2024-10-4 15:30 编辑

接着上一个修改epub。
文件名是:
四十二章经 - 後汉 迦叶摩腾共法兰译 第 1 卷 - AI 大藏经:文言文转白话文,无障碍阅读
分别功德论 - 失译附後汉录 第 1 卷 - AI 大藏经:文言文转白话文,无障碍阅读
分别功德论 - 失译附後汉录 第 002 卷 - AI 大藏经:文言文转白话文,无障碍阅读
分别功德论 - 失译附後汉录 第 003 卷 - AI 大藏经:文言文转白话文,无障碍阅读

文本a的内容:
T17n0784--四十二章经--後汉 迦叶摩腾共法兰译
T39n1794--注四十二章经--宋 真宗皇帝注
X37n0669--四十二章经注--宋 守遂注 明 了童补注
X37n0670--四十二章经解--明 智旭著
X37n0671--四十二章经疏钞--清 续法述

第一,尽量把文件名繁体转简体。这一步可以另外操作。
第二,文件名含有002、003及以上的,移动到新建文件夹。
第三,最开始到空格的字符,前后加上--,去搜索文本a,找到,就重新命名。
谢谢!
发表于 2024-10-4 14:59:38 | 显示全部楼层
保存为 重命名epub.bat,编码是ANSI.
  1. <#*,:
  2. @echo off
  3. cd /d "%~dp0"
  4. set "batchfile=%~f0"
  5. Powershell -ExecutionPolicy Bypass -C "Set-Location -LiteralPath ([Environment]::CurrentDirectory);. ([ScriptBlock]::Create([IO.File]::ReadAllText($env:batchfile,[Text.Encoding]::GetEncoding(0) )) )"
  6. pause
  7. exit /b
  8. #>
  9. #
  10. # a.txt内容放这里
  11. $a = @'
  12. T17n0784--四十二章经--後汉 迦叶摩腾共法兰译
  13. T39n1794--注四十二章经--宋 真宗皇帝注
  14. X37n0669--四十二章经注--宋 守遂注  明 了童补注
  15. X37n0670--四十二章经解--明 智旭著
  16. X37n0671--四十二章经疏钞--清 续法述
  17. '@

  18. $arr = $a.Trim() -split '[\r\n]+'
  19. Add-Type -AssemblyName Microsoft.VisualBasic

  20. # 繁体转简体
  21. Get-ChildItem -Path . | Where-Object { $_ -is [IO.FileInfo] -and $_.FullName -ne $env:batchfile -and $_.Name -ne 'a.txt' } | Rename-Item -NewName {
  22.   [Microsoft.VisualBasic.Strings]::StrConv($_.Name, [Microsoft.VisualBasic.VbStrConv]::SimplifiedChinese, 0)
  23. } -Verbose -ErrorAction SilentlyContinue

  24. # 文件名含有002、003及以上的,移动到新建文件夹
  25. $di = [IO.Directory]::CreateDirectory('新建文件夹')
  26. Get-ChildItem -Path . | Where-Object { $_ -is [IO.FileInfo] -and $_.FullName -ne $env:batchfile -and $_.Name -ne 'a.txt' -and $_.Name -match '\b\d{3}\b' } | Move-Item -Destination ($di.FullName) -Verbose

  27. # 最开始到空格的字符,前后加上--,去搜索文本a,找到,就重新命名
  28. Get-ChildItem -Path . | Where-Object { $_ -is [IO.FileInfo] -and $_.FullName -ne $env:batchfile -and $_.Name -ne 'a.txt' } | Rename-Item -NewName {
  29.   $k = ($_.BaseName -split '\s+')[0]
  30.   $newBaseName = $arr -match "--$([regex]::Escape(${k}))--" | Select-Object -First 1
  31.   if ($newBaseName) {
  32.     $newBaseName + $_.Extension
  33.   } else {
  34.     $_.Name
  35.   }
  36. } -Verbose -ErrorAction SilentlyContinue
复制代码

评分

参与人数 1技术 +1 收起 理由
lxh623 + 1 感谢分享

查看全部评分

 楼主| 发表于 2024-10-4 15:30:20 | 显示全部楼层
请查收。谢谢!
节日快乐!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 19:16 , Processed in 0.018515 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表