Windows 系统中的奇怪 Bug 和历史遗留问题

MaxVerstappen••1400 浏览•8 评论

🪟 Windows 系统中的奇怪 Bug 和历史遗留问题

Windows 自上世纪 80 年代起发展至今,积累了大量兼容性、历史包袱与奇怪设计。本篇介绍一些有趣或让开发者头大的 Windows Bug。


1. CON, PRN, AUX 等保留文件名 Bug

💥 问题描述

在 Windows 中,无法创建名为 CON.txt、PRN.doc、AUX.jpg 等文件,无论是否添加扩展名。

📜 原因

这些名字来源于 MS-DOS,代表系统设备:

设备名 含义
CON 控制台设备
PRN 打印机设备
AUX 辅助串口设备
NUL 空设备

虽然现在很少人用打印机串口,但这些保留名一直留存至今,无法被用作文件名。

🧪 复现

echo hello > CON.txt
# 报错:文件名无效

2. Excel 的 1900 年是闰年 Bug

🐛 问题描述

Excel 默认的日期系统中,错误地认为 1900 年是闰年,因此包含一个本不应该存在的 2 月 29 日。

📜 原因

为了兼容早期 Lotus 1-2-3 软件的 Bug,微软故意保留了这个错误。

"It's not a bug, it's a feature for compatibility."

📅 正确的规则

  • 世纪年(如 1900)如果不能被 400 整除,不是闰年。
  • 1900 是平年,2月没有29日。

3. 文件路径最大长度限制(260 字符)

🧱 问题描述

默认情况下,Windows 的最大路径长度为 260 个字符,包括盘符、路径、文件名和 NULL 结尾符。

📜 原因

该限制来自早期 Windows API 的 MAX_PATH 常量定义。

💡 解决方案

  • 在 Windows 10+ 中可以通过注册表启用 长路径支持;
  • 使用 \\?\ 前缀可绕过路径限制:
\\?\C:\very\long\path\file.txt

4. 删除不了的 Thumbs.db

📷 问题描述

资源管理器预览图片时会生成一个隐藏文件 Thumbs.db,记录缩略图缓存。删除文件夹时,若该文件未释放,会导致“无法删除”提示。

🛠️ 解决方案

  • 禁用缩略图缓存(组策略或资源管理器设置)
  • 使用命令强制删除:
del /f /a Thumbs.db /s

5. 文件名大小写不敏感但保留大小写

🔤 问题描述

Windows 文件系统默认 不区分大小写(case-insensitive),但又 保留用户输入的大小写(case-preserving)。

> echo 123 > Hello.txt
> echo 456 > hello.txt
# 第二条命令不会创建新文件,而是覆盖原文件

🤯 问题影响

  • Git 在处理文件重命名时容易出错;
  • 复制跨平台文件夹可能出现重复文件名问题。

6. 路径带空格导致批处理出错

🧨 问题描述

如果批处理脚本中路径不加引号,而路径中包含空格,如:

cd C:\Program Files\My App

系统会尝试访问 C:\Program,导致执行失败。

✅ 正确写法

cd "C:\Program Files\My App"

7. “设备已准备就绪”却读不到 USB 设备

🔌 问题描述

插入 U 盘后系统提示设备已就绪,但打开时显示驱动器为空或读取失败。

🔎 可能原因

  • 驱动器分配错误;
  • 分区表损坏;
  • 磁盘初始化失败但系统误报成功。

🛠️ 解决方法

  • 用磁盘管理工具重新分配盘符;
  • 使用 diskpart 清理并重建分区。

8. 任务计划程序延迟触发/不触发

🕑 问题描述

某些计划任务在唤醒电脑后未按时执行,或只在手动执行时生效。

🔍 原因

  • 没有勾选“唤醒计算机运行任务”;
  • 电源选项中阻止唤醒;
  • 权限不足。

9. 文件复制进度卡在 99%

📂 问题描述

复制大型文件时,进度条长时间卡在 99%,看起来像是“复制失败”。

📜 原因

  • 数据已经写入缓存,但尚未刷新到磁盘(flush)
  • 尤其在大文件或外接硬盘时更明显

🔚 总结

Bug 名称 原因简述
CON 等保留文件名 MS-DOS 遗留设备名
Excel 1900 年闰年 Bug 兼容 Lotus 1-2-3
路径长度限制 MAX_PATH 限制
Thumbs.db 无法删除 缩略图缓存被占用
大小写保留但不区分大小写 文件系统默认行为
批处理路径空格出错 未加引号
USB 显示正常但无法读取 分区/盘符错误
计划任务延迟触发 电源策略/权限问题
复制卡住 缓存刷新未完成

💬 全部回帖 (8)
马达

感谢分享

小zz(摸鱼帮三当家)

感谢分享

赌狗

我在鱼排学知识

lowkey

已阅

小乱

好

美人鱼战士🐟

第一个试了一下,真的耶

Saintbutcher

棒!

章鱼哥

奇怪的知识又增加了

参与讨论

随机发现

随机发现尚未读取。