fc /n命令可直接输出带行号的文本文件差异,支持utf-8无bom等编码,需加/u处理中文,/w忽略空白,/c忽略大小写,/n显示行号,errorlevel可判断是否一致。

你需要在Windows 10命令提示符中快速确认两个文本代码文件(如main.py、config.json)内容是否一致,并定位具体哪几行不匹配,fc命令能直接输出带行号的差异结果,无需安装第三方工具。
准备:确认文件路径与编码
打开命令提示符(cmd),用cd切换到两个文件所在目录,或直接使用绝对路径。确保两个文件都是纯文本格式——fc对UTF-8无BOM、ANSI、UTF-16 LE均支持,但【若文件含中文且无BOM,建议加 /U 参数】,否则可能乱码或跳过比较。
用dir *.py或dir config.*核对文件名拼写,注意大小写不影响fc默认行为,但路径中不能有未转义的空格或特殊符号(如&、|),否则需用英文双引号包裹路径。
基础比对:显示差异行与行号
执行命令:fc /n "file1.py" "file2.py"。
这会以ASCII模式逐行比对,并在输出中标明每处差异在各自文件中的行号。例如输出出现*****file1.py
3: def init():
4: print("start")
*****file2.py
3: def init(self):
4: print("ready"),说明第3、4行内容不同。
【/n必须搭配/L使用才生效,但/L是ASCII比对默认模式,所以可省略】;若漏加/n,你只能看到差异内容,无法定位到第几行修改了。
应对常见干扰:忽略格式噪音
方法一:忽略首尾空白和中间多个空格/制表符
用fc /w /n "a.js" "b.js"。/w会把连续空格、制表符压缩为单个空格,并跳过行首尾空白——适合比对被不同编辑器格式化过的JS/JSON文件。
方法二:完全忽略大小写
加/c参数:fc /c /n "Readme.md" "README.MD"。这对Git提交前后命名不统一或跨平台生成的文档很实用。
方法三:强制按Unicode解码(中文必选)
用fc /u /n "中文配置.txt" "中文配置_新.txt"。不加/u时,fc可能将UTF-8中文当作乱码跳过整行,导致“no differences encountered”误判。
批量判断是否相同:用errorlevel做逻辑分支
第一步:执行比对并屏蔽输出
fc "src\index.html" "dist\index.html" > nul
第二步:检查退出码
if errorlevel 1 (echo 文件不同) else (echo 文件相同)
fc返回0表示完全一致,返回1表示存在差异。> nul防止干扰后续判断;此组合常用于部署脚本中自动校验构建产物。
注意:/b(二进制模式)不适用于代码文件——它会按字节比对,遇到换行符差异(CRLF vs LF)就报错,而代码文件应以文本逻辑比对。











