文件夹在你的浏览器中读取。不上传任何内容,在你下令之前不会写入任何文件。
关于在多个文件中替换文字
Windows 可以从命令行查找文件内容。findstr /s 会告诉你哪些文件提到了某个词。
但它不能替换。要替换就得写 PowerShell 循环——Get-Content、-replace、Set-Content——而这个循环有个毛病:它常常毁掉本该被修好的文件。
这个工具做同样的事,但补上了那个循环缺少的一步:把每一行会发生的改动,以改前和改后的样子摆给你看,并且在你点头之前什么都不写。
使用方法
- 点击选择文件夹并选中它
- 输入要查找的内容,以及要替换为的内容
- 如果只想处理 .html 或只处理 .csv,就填写仅这些类型
- 点击预览改动并阅读列表——每一行都会显示现在的样子和将变成的样子
- 勾选确认框,然后点击立即修改文件——或者改为生成只含变动文件的 ZIP
PowerShell 循环会弄错的地方
- 编码。 Set-Content 按控制台代码页写出,于是 UTF-8 文件回来时中文和重音字母全乱了。这里每个文件都被正确解码并以 UTF-8 写回,原本带字节顺序标记的文件会保留它
- 换行符。 同一个循环会把 CRLF 改写成 LF。在 git 仓库里,下一次提交会显示为*每一行都改了*。这里换行符逐行保持原样,即使文件中两种混用也一样
- 没有预览。 循环跑完,你事后才知道。这个工具存在的全部理由就在于此
三种匹配方式
- 纯文本 — 输入什么就找什么。$1 就是 $1
- 仅匹配完整单词 — cat 不会匹配 category 里面的部分
- 正则表达式 — 完整正则,替换框中的 $1 会成为捕获组。适合一次性把 2026-09-10 变成 2026年9月10日
区分大小写默认关闭,所以 Color 和 color 都能找到。
非文本文件会被跳过
首块中出现 NUL 字节就说明这不是文本。在 JPEG 内部做替换会毁掉它,而工具的每一步却都报告成功——所以这类文件会被跳过,并且被计数,让你看得见发生过什么。超过 8 MB 的文件,以及系统不让打开的文件,也同样计数。一个悄悄忽略半个文件夹的工具,比一个明确拒绝的工具更糟。
就地写入,还是 ZIP
Chrome、Edge 和 Opera 可以获得对所选文件夹的写入权限,文件会就地被修改。保留 .bak 副本默认开启:每个原文件在被改写前会以 page.html.bak 的名字复制到旁边,而且备份先写,因此即使失败,原文件也毫发无损。
所有浏览器都可以改为生成一个只含真正变动文件的 ZIP,文件夹结构完整保留,可直接解压覆盖原文件。当文件夹本身是一份副本、你想先检查再覆盖时,这也是更好的选择——它天然就是工具具体做了什么的记录。
人们用它做什么
- 在整个网站文件夹中修改域名、网址或公司名称
- 一次性更新所有文档里的年份、价格或版本号
- 在一批导出的记录中修正拼错的名字
- 在模板文件夹中把占位符换成真实值
- 在一堆 CSV 导出文件中修改分隔符或日期格式
- 从每个页面中移除跟踪参数或过时的代码片段
值得知道
- 在你勾选确认并按下按钮之前,不会写入任何内容
- 更改选项会丢弃预览,而不是留下一份已经和实际结果对不上的列表
- 写入之后结果会被清空——文件里已经没有旧文字了,因此再点一次也不会把同一处改动重复应用
- 非文本、过大或无法打开的文件会被跳过并计数
- 换行符和字节顺序标记按文件逐个保留
- 预览列出前 200 个文件,以及每个文件中前 50 处改动;执行时始终覆盖全部文件
- 可在 Windows、macOS、Linux 和 ChromeOS 上使用。 移动浏览器无法把文件夹交给网页,因此手机和平板上无法使用