level 7
这小工具是用来给读书巴士里的小说双引号换行的,因为其自带的自动排版功能不会给双引号换行,所以才需要另外制作这个小工具来处理这问题。
2026年07月09日 17点07分
1
level 7
顺便让豆包把教程也写了一下,再人工修改一下BUG就能用了,因为度娘大概率会删减代码所以正确的教程内容和小工具本身都在网盘里。
2026年07月09日 17点07分
2
share.weiyun.com/Mtn7FALk
2026年07月09日 17点07分
还有读书巴士有个BUG,通过替换——高级——多重替换,进行正则替换”→”<br /><br />时有时候会把小说内容删掉一小段,所以我才想着弄个小工具把这问题解决了。
2026年07月09日 17点07分
level 7
# 读书巴士小说引号自动换行工具完整使用教程【注意使用前先备份小说原TXT文件】
## 一、工具简介
### 使用背景
读书巴士软件自带自动排版存在缺陷:软件无法识别英文双引号 `"`、中文右弯引号 `”`,不会在引号后自动换行,小说段落拥挤、阅读体验差。
本工具专门适配读书巴士缓存生成的 `.htm` 章节文件,预处理小说正文,批量在句末引号后添加换行标签 `<br /><br />`,搭配软件自带自动排版,实现干净分段。
### 工具核心功能
1. 仅处理 `.htm` 文件,自动忽略txt、html、图片等其他格式;
2. 精准限定处理范围:只修改 `<!--BookContent Start-->` 与 `<!--BookContent End-->` 中间的小说正文,页面标题、导航栏、HTML标签、注释完全不动;【读书巴士小说文件的固有格式】
3. 两类引号自动追加换行,区分:
- 英文直双引号 `"` → `"`<br /><br />`【英文双引号不分上下左右所以上引号和下引号都会换行】
- 中文右弯引号 `”` → `”`<br /><br />
4. 智能防重复机制:若引号后方已经存在 `<br /><br />`,自动跳过,多次运行不会生成多层重复换行;
5. 文件统一ANSI(GBK)读写编码,中文无乱码;
6. 支持Windows「发送到」快捷方式,右键小说文件夹一键批量处理全书所有章节。
## 二、工具配套文件(2个文件必须放在同一个文件夹,缺一不可)
### 文件1:下引号换行.bat(保存编码:ANSI)
@echo off
setlocal DISABLEDELAYEDEXPANSION
chcp 936 >nul
set "PS_EXE=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe"
set "BAT_ROOT=%~dp0"
set "PS_FILE=%BAT_ROOT%下引号转行.ps1"
if not exist "%PS_FILE%" (
echo =================错误=================
echo 缺少脚本:下引号转行.ps1
echo bat与ps1必须放在同一文件夹
pause
exit /b 2
)
set "TARGET=%~f1"
if "%TARGET%"=="" set "TARGET=%cd%"
"%PS_EXE%" -ExecutionPolicy Bypass -Command "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; & '%PS_FILE%' '%TARGET%'; Read-Host '按回车关闭窗口'"
echo BAT执行结束
pause
endlocal
2026年07月09日 17点07分
3
level 7
###文件2:下引号转行.ps1(保存编码:UTF-8带BOM)
[Console]::OutputEncoding=[System.Text.Encoding]::UTF8
$targetPath=$args[0]
Write-Host'======================================'
Write-Host'处理目录:'$targetPath
Write-Host'规则说明:'
Write-Host'1.仅处理HTM文件,只修改<!--BookContentStart-->~<!--BookContentEnd-->区间内'
Write-Host'2.英文双引号、中文右引号”自动跳过已加<br/><br/>的内容'
Write-Host'文件读写编码:ANSI(GBK)'
Write-Host'======================================'
Write-Host''
#只检索*.htm,移除txt
$fileList=Get-ChildItem-Path$targetPath-Include*.htm-File-Recurse
if($fileList.Count-eq0)
{
Write-Host'警告:当前目录无htm文件'
}
else
{
foreach($filein$fileList)
{
try
{
$content=Get-Content-Path$file.FullName-Raw-EncodingDefault
$engQuote=[char]34
$cnRightQuote=[char]8221
$brTag="<br/><br/>"
#引号替换函数,防重复追加标签
functionReplaceQuote($text)
{
$t=$text-replace"$([regex]::Escape($engQuote))(?!$([regex]::Escape($brTag)))","$engQuote$brTag"
$t=$t-replace"$([regex]::Escape($cnRightQuote))(?!$([regex]::Escape($brTag)))","$cnRightQuote$brTag"
return$t
}
$startMark='<!--BookContentStart-->'
$endMark='<!--BookContentEnd-->'
#查找起止标记位置
$startIdx=$content.IndexOf($startMark)
$endIdx=$content.IndexOf($endMark,$startIdx+$startMark.Length)
#存在完整区间才处理,否则文件原样不变
if($startIdx-ge0-and$endIdx-gt$startIdx)
{
2026年07月09日 17点07分
4
level 7
#拆分三段:标记前、中间内容、标记后
$prefix=$content.Substring(0,$startIdx+$startMark.Length)
$middleRaw=$content.Substring($startIdx+$startMark.Length,$endIdx-($startIdx+$startMark.Length))
$suffix=$content.Substring($endIdx)
#仅中间内容执行替换
$middleNew=ReplaceQuote$middleRaw
#拼接回完整文本
$content=$prefix+$middleNew+$suffix
Write-Host'ℹ️htm文件找到BookContent区间并处理'
}
else
{
Write-Host'ℹ️htm文件未找到完整BookContent起止注释,跳过修改'
}
Set-Content-Path$file.FullName$content-EncodingDefault
Write-Host'✅已处理:'$file.Name
}
catch
{
Write-Host'❌失败:'$file.FullName'|错误:'$_
}
}
}
Write-Host''
Write-Host'======================================'
Write-Host'全部文件处理完毕'
2026年07月09日 17点07分
5
level 7
### 文件保存硬性规范(出错/乱码根源)
1. 在电脑新建固定工具文件夹,示例路径:`D:\读书巴士排版工具`;
2. 新建文本文档粘贴bat代码,另存为 `下引号换行.bat`,编码选择【ANSI】;
3. 新建文本文档粘贴ps1代码,另存为 `下引号转行.ps1`,编码选择【UTF-8 带BOM / UTF-8 with signature】;
4. 两个文件统一放在工具文件夹内,禁止改名、拆分、移动路径。
## 三、配置Windows「发送到」快捷方式(一键批量处理)
1. 进入工具文件夹,右键 `下引号换行.bat` → 创建快捷方式;
2. 快捷键 Win+R,输入shell:sendto回车,打开系统「发送到」文件夹;
3. 将刚生成的bat快捷方式剪切粘贴进SendTo文件夹;
> 仅存放快捷方式,bat本体与ps1保留在固定工具目录,不要移动。
## 四、完整操作流程(读书巴士小说排版全步骤)
### 步骤1:找到读书巴士本地小说存储文件夹
1. 打开读书巴士软件;
2. 在软件顶部地址栏空白位置右键点击;
3. 选择「打开小说文件夹」,自动弹出本书章节目录,路径示例:`G:/读书巴士/chm/001721/`。
### 步骤1:找到读书巴士本地小说目录
1.在读书巴士上方工具栏右键点击地址栏,找到小说文件夹,格式为 G:/ 读书巴士 /chm/001721/;
### 步骤2:使用工具批量处理全书htm章节
1. 右键该文件夹 → 发送到 → 下引号换行.bat;
2. 弹出黑色处理窗口,自动扫描文件夹内全部htm章节:
- 提示【ℹ️ htm文件找到BookContent区间并处理】:正常追加换行标签;
- 提示【ℹ️ htm文件未找到完整BookContent起止注释,跳过修改】:文件无正文标记,不改动;
3. 窗口底部提示【全部文件处理完毕】,按回车键关闭窗口。
### 步骤3:读书巴士软件内执行自动排版
1.最后在读书巴士的章节栏界面 CTRL+A 框住所有章节后右键自动排版就能完美地完成排版了。
## 五、常见问题排查
1. 运行窗口一闪消失
确认bat与ps1在同一文件夹,SendTo内仅存放快捷方式,快捷方式路径无中文特殊符号。
2. 命令行输出文字乱码
bat保存编码必须ANSI,ps1保存编码必须UTF-8带BOM。
3. htm文件完全没有修改
① 文件缺少 `<!--BookContent Start-->` 或 `<!--BookContent End-->` 注释标记;
② 文件后缀为.html,工具仅识别后缀为.htm的文件;
③ 运行日志提示跳过修改,代表无正文区间。
4. 多次运行出现重复多层`<br /><br />`
工具自带防重复逻辑,若仍叠加,检查原始文件标签是否存在多余空格变形。
5. 启动提示“缺少ps1脚本”
bat和ps1必须放在同一个文件夹,不能分开存放。
## 六、补充说明
1. 工具仅适配读书巴士缓存导出的htm小说文件,其他网页、电子书html不保证兼容;
2. 无需人工区分句末引号,工具自动匹配所有引号,批量处理效率更高;
3. 读书巴士原生自动排版无法实现引号后换行,必须先用本工具预处理章节文件,再执行软件排版功能。
2026年07月09日 17点07分
6