OmniSort
Windows 10 / 11 · 纯本地 · 免安装

移动文件之前,
先告诉你每个去哪

它翻一遍你的下载文件夹,按扩展名、文件名、日期和大小分好类, 每一行都写上“为什么进这个文件夹”,先给你看。 只有你点头的才会动,而且随时能全部撤回。

  • 移动之前,逐个告诉你去哪、为什么
  • 只移动勾选的,撤销一次全部还原
  • 不覆盖 — 目标已存在时,内核会直接拒绝这次移动
  • 免安装,一个程序;所有处理都在这台电脑上
v0.2.5 单个可执行文件 10 万个文件 ≈ 49 秒 966 项测试
C:\Users\me\Downloads 已选 6 个 · 152 KB
选择 文件 新位置 原因
合同_ACME_2026.pdf Documents/Contracts 扩展名 .pdf · 文件名含“合同”
ACME-invoice-0312.pdf Documents/Invoices 扩展名 .pdf · 文件名含“发票”
screenshot 2026-09-10.png Images/Screenshots 扩展名 .png · 文件名含“截图”
销售结算_9月.xlsx Spreadsheets 扩展名 .xlsx
playlist-bounce.mp3 Audio 扩展名 .mp3
⚠ 报价单_最终.pdf Documents/Quotes 扩展名写 .pdf,内容却是程序
备忘.txt Documents 已有同名 → 备忘 (1).txt
unknown-blob.qqq Other 未知扩展名
VSCodeUserSetup-x64.exe Installers 扩展名 .exe
只移动勾选的行 预览 开始整理
怎么用

分析 → 预览 → 开始整理

三步严格按顺序来。分析没完,不碰任何文件;没有你的同意,不会移动。

1

分析

文件夹在后台读取。隐藏文件、系统文件、符号链接以及 node_modules 这类文件夹都跳过。中途随时可以取消。

2

预览

文件、当前位置、新位置、分类理由都在一张表里。重名的会提前标出来,勾选框由你决定。

3

开始整理

只移动你勾选的,并把每一次移动都记下来。结果不满意,点一次[撤销]就回到原样。

功能

整理该有的功能,做扎实

你的规则永远优先

用通配符、正则、扩展名、大小或时间写规则,并排优先级。合同* → Documents/Contracts。

看得见理由的分类

每一行都写清依据:“扩展名 .pdf → 文档 · 文件名含‘发票’→ Invoices”。

撤销

按操作记录来源和目标,再倒着还原。原位置若已被别的文件占了,就跳过而不是覆盖。

重名怎么办

重名就存成 报告 (1).pdf,或者跳过。任何情况下都不覆盖。

排除规则

不该碰的东西可以用规则排除:*.crdownload、小于设定大小的文件、整个文件夹。

定时整理

每天到点,只分析也行,连移动一起做也行。schedule --install 一行就把任务计划也登记好了。

长路径与非拉丁字符路径

超过 260 个字符的路径用 \\?\ 前缀处理,中文、日文、韩文路径都照常处理。

识破伪装的扩展名

“报价单.pdf”其实是程序,或者 发票.pdf.exe 这种双扩展名,都会被标上 ⚠。只有容易被冒充的扩展名才读前 512 字节。

查找重复文件

先比大小,再比头尾各 64KB 的哈希,最后比整个文件,三步筛完只把副本送进回收站。原件按名字判断后保留。

历史

每次扫描和移动都留在 SQLite 里。operation_items 一行一条:来源、目标、状态、理由、错误。

规则预设

一次添加面向学生、上班族、开发者、摄影/设计的规则组。添加前先告诉你什么会去哪里,你自己写的规则始终优先。

空间占用

以只读方式列出大文件、很久没动过的文件、各分类占用和磁盘剩余空间。清理的只有你选中的文件,而且只进回收站。

按月统计

在管理面板里查看每月整理量、总成功率,以及移入回收站释放的空间。规则可以导出为 JSON,分享给其他电脑。

界面不会卡住

扫描和移动都跑在工作线程上,1 万个文件扫描加分类约 5 秒。中途取消,记录照样留着。

分类规则

六个步骤按顺序生效

上面定了,下面就不看了。日期和大小是在分类定下来之后,再添一层子文件夹。

  1. 自定义规则合同* → Documents/Contracts
  2. 扩展名.xlsx → Spreadsheets
  3. 文件名规则*invoice* → Documents/Invoices
  4. 日期Images/2026/09
  5. 大小Videos/Large
  6. 可选的内容分析只看文本前 8KB
分类扩展名
文档pdf doc docx hwp hwpx txt md rtf odt
图片jpg jpeg png webp gif bmp svg heic
视频mp4 mov avi mkv webm
音频mp3 wav flac m4a ogg
压缩包zip 7z rar tar gz
表格xls xlsx csv ods
演示文稿ppt pptx odp
安装程序exe msi msix
其他其余全部(未分类)
界面

一张表就能审完

用搜索筛一遍,右键到资源管理器里确认,再把勾选的移走。

OmniSort
OmniSort 主界面:要整理的文件夹列表、文件总数与待整理数,以及包含文件、当前位置、新位置、分类理由、大小各列的预览表
真实运行画面 · 22 个文件里有 21 个待整理。标 ⚠ 的那行,扩展名和内容对不上
管理报告

什么时候移了什么,一页说清

按一下按钮(或者 omnisort-cli report),至今为止的整理记录就变成一页 HTML。不需要服务器,也不需要联网,可以直接存档或转给别人。

整理次数128
移动的文件4,312
移动容量62.4GB
已撤销37
失败2
跳过19
文档1,842
图片1,306
压缩包604
视频351
其他209
ID类型时间状态成功/总数
#128整理09-11 03:00完成412/412
#127撤销09-10 21:14已撤销37/37
#126整理09-10 03:00部分失败298/300
#125回收站09-09 18:02完成64/64
安全设计

不删除。不覆盖。

整理工具一旦出错,丢的就是数据。所以不能撤销的操作,我们干脆没做。

  • 绝不自动永久删除删除只走回收站。整理后空下来的文件夹也是送进回收站,而不是直接删掉。
  • 不覆盖(由内核保证)调用方式本身就是“目标已存在则拒绝移动”。哪怕在“检查完到移动”之间冒出一个文件,也不会覆盖别人的东西。
  • 临移动前再确认一次预览之后大小或修改时间变了、或者变成链接的文件,都不会被移动。
  • 系统文件夹一律不碰受保护的路径在添加文件夹时就会被拒绝,扫描中遇到也会跳过。
  • 动手前全部摊开来源、目标、有没有重名,全摆出来,只处理你勾的。
  • 先记录,后移动每一项都先写进数据库再移动。中途断电也知道走到了哪一步。
  • 正在写入的文件不动正在下载(.crdownload、.part)或刚刚改动过的文件会自动跳过。
  • 中断了也能撤销整理途中程序挂了,下次启动会查清移到了哪一步,并整理成可以撤销的状态。
  • 不跟着链接走不会顺着符号链接或联接跑到外面去;目标路径中间夹着链接时直接拒绝。
  • 出不了根目录规则里不能写 ..、绝对路径或网络路径;最终路径一旦落在整理根目录之外,就不会移动。

不能作为目标的位置

  • C:\Windows
  • C:\Program Files
  • C:\Program Files (x86)
  • C:\ProgramData
  • %LOCALAPPDATA% · %APPDATA%
  • C:\$Recycle.Bin
  • System Volume Information
  • 磁盘根目录(C:\)
命令行 · 定时

可以挂到任务计划程序上的控制台版本

和窗口版用同一个数据库、同一套规则。不加 --apply 就绝不会动任何文件。

omnisort-cli.exe
# 登记要整理的文件夹
omnisort-cli add "C:\Users\me\Downloads"

# 只看谁去哪(不移动)
omnisort-cli preview

# 添加规则:合同进 Contracts,正在下载的排除
omnisort-cli rules add --name 合同 --glob "合同*" --target Documents/Contracts
omnisort-cli rules add --name 临时 --glob "*.crdownload" --exclude

# 真正整理 · 撤销 · 查看记录
omnisort-cli run --apply --yes
omnisort-cli undo
omnisort-cli history

# 查重复 · 只留原件,其余进回收站
omnisort-cli duplicates
omnisort-cli duplicates --trash

# 查看大文件、旧文件、磁盘空间(只读)
omnisort-cli space --old-days 365

# 查看规则预设 · 添加学生用规则组
omnisort-cli rules preset
omnisort-cli rules preset student

# 把预览存成 CSV(Excel 能打开)
omnisort-cli export plan.csv

# 每天 03:00 定时 — 一行连任务计划都登记好
omnisort-cli config schedule_time 03:00
omnisort-cli schedule --install
omnisort-cli schedule --check
对比

比移动更难的,是移错了的时候

盯着文件夹、按规则立刻移动的工具很快,但什么去了哪里,要等移完才知道。OmniSort 把顺序倒了过来。

手动整理、按规则直接移动的工具与 OmniSort 的对比
项目 手动整理 按规则直接移动的工具 OmniSort
移动前看到去向 自己判断 移完才知道 每个文件的去向和理由
移错了的时候 全凭记忆 因工具而异 按操作整批撤销,旧操作也行
同名文件 全靠覆盖提示 因工具而异 任何情况下都不覆盖
伪装扩展名的文件 很难察觉 不检查内容 读取内容,标上 ⚠
清理重复和大文件 在资源管理器里一个个来 需要另找工具 一个程序搞定,只进回收站
网络与账号 不需要 因工具而异 不需要,默认什么都不外传
下载

下载后直接运行

没有安装程序。把这一个可执行文件放到任意文件夹里运行,就完事了。

三步

  1. 从发布页面下载 OmniSort.exe(想用命令行的话,再下载 omnisort-cli.exe
  2. 把下载的文件放到任意文件夹,双击运行
  3. 用[+ 添加]加入 Downloads 文件夹,再点[分析]
下载 OmniSort.exe

v0.2.5 · 30.0 MB · SHA-256 5860ec06424701deb14ab387ab6917b21c1848b298494b7f24dc89e7e529953a

需要什么

操作系统
Windows 10 / 11(64 位)
安装
不需要 · 也不需要管理员权限
网络
不需要 · 只有你开启的联网功能才会用到
留下的东西
可执行文件、记录用的 DB 文件,以及整理过的文件夹里的小标记文件

如果弹出“Windows 已保护你的电脑”

OmniSort 已进行代码签名,但新发布的版本下载的人还不多,SmartScreen 可能会在一段时间内要求确认。点[更多信息],确认发布者是 PROJECTTEAMFORYOU 后再点[仍要运行]。如果发布者名称不同或没有显示,请不要运行。

想确认下载的文件和发布的是否一致,可以在 exe 所在的文件夹里打开 PowerShell,运行下面的命令,把得到的值和发布页面上的 SHA-256 对比。

Get-FileHash .\OmniSort.exe -Algorithm SHA256
常见问题

开始之前值得知道的

会把文件传到网上吗?

不会。扫描、分类、移动、记录全都在这台电脑上完成,文件名和路径都不会外传。设置和日志只存在 %LOCALAPPDATA%\OmniSort\omnisort.db 这一个文件里。

完全不联网吗?

默认一次都不用。只有你在管理面板里亲自打开检查新版、公告或下载次数时才会获取,而且那时也不发送任何文件信息(检查新版时只带上版本号)。会发出去什么,那个面板上连地址都写得清清楚楚。

免费吗?

是的。免费使用,不需要账号,也不用付费。默认也没有广告。如果你在管理面板里开启了接收公告,收到广告性质的消息时,会标明“广告”再显示。

空间占用会删除文件吗?

不会。空间占用只读取。只有你在列表里亲自选中并确认的文件才会进回收站,而且可以从回收站还原。网络驱动器或 U 盘等可移动驱动器上的文件、比回收站还大的文件这类进不了回收站的,不会发送,而是提示你。

整理完不满意怎么办?

点[撤销],最近一次操作会按相反顺序还原。也可以在历史记录里挑一次旧操作来撤销。如果原位置又出现了同名文件,那一项会被跳过而不是覆盖,并且会告诉你哪些被跳过、为什么。

已经整理过的文件夹会被反复整理吗?

OmniSort 建的文件夹会留下标记,下次扫描自动跳过。已经在正确位置的文件也不会再进候选。

文件被占用或没有权限怎么办?

只把那一项记为失败,其余继续。失败原因在记录里能看到,失败的文件仍在原处。

需要安装吗?

下载一个 OmniSort.exe 直接运行就行。不用管理员权限,也不写注册表。想删掉时,删除 exe 和上面那个数据库文件夹即可。如果开启过定时整理,请先用 omnisort-cli schedule --uninstall 删掉任务计划程序里的登记。