我用 cmd 批量改文件后缀名翻车了,原来 PowerShell 和它语法不一样!

我用 cmd 批量改文件后缀名翻车了,原来 PowerShell 和它语法不一样!

在这里插入图片描述

标签:Windows CMD 批量修改后缀名、PowerShell 改扩展名、文件重命名脚本


我一直以为改文件后缀这种事,在 Windows 上只要一个 for 循环就能搞定,直到那天我在 PowerShell 里贴了个 CMD 命令,结果直接报错给我看……

这才发现,原来 CMD 和 PowerShell 根本不是一个语法体系!

现在就把我实际踩坑后的解决方案写下来,一次性搞定 Windows 批量修改文件后缀名,以后再也不怕手动改一堆 .txt 了。


🧩 场景复现:把所有 txt 文件改成 md 文件

假设当前目录下有这些文件:

说明.txt
待办.txt
日记.txt

我们要把这些改成:

说明.md
待办.md
日记.md

✅ 方法一:用 CMD 改后缀,简单暴力

操作步骤:

  1. Win + R 输入 cmd 回车;
  2. 进入你要操作的文件夹;
  3. 输入以下命令:
for %f in (*.txt) do ren "%f" "%~nf.md"

效果展示:

执行完之后,所有 .txt 文件都会变成 .md,文件名保持不变。

🔒 注意:

如果你想把这条命令写到 .bat 脚本里,就需要双写百分号:

for %%f in (*.txt) do ren "%%f" "%%~nf.md"

⚠️ 有人遇到这个错误?

当你在 PowerShell 粘贴 for %f in (*.txt) 时,很可能会遇到:

关键字“for”后面缺少左“(”。

没错,这就是语法不兼容导致的。


✅ 方法二:PowerShell 改后缀,更现代更优雅

如果你用的是 PowerShell(右键目录 -> 在此处打开 PowerShell),那么正确的命令是:

Get-ChildItem -Filter *.txt | Rename-Item -NewName { $_.BaseName + ".md" }

解释下语法:

  • Get-ChildItem -Filter *.txt:获取所有 .txt 文件;
  • Rename-Item:改名字;
  • { $_.BaseName + ".md" }:保留文件名,只改扩展名。

效果一模一样:

说明.txt → 说明.md
待办.txt → 待办.md
日记.txt → 日记.md

✅ 进阶技巧:一次性改多个后缀类型

比如同时把 .log.bak 文件都改成 .txt,你可以组合两条命令一起写:

Get-ChildItem -Filter *.log | Rename-Item -NewName { $_.BaseName + ".txt" }
Get-ChildItem -Filter *.bak | Rename-Item -NewName { $_.BaseName + ".txt" }

🔚 写在最后

别小看这个批量改名操作,我以前做博客迁移、Markdown 批量处理,几百个文件一个个手动改后缀真的会崩溃。有了这两种命令方式,不管你是习惯用 CMD 还是 PowerShell,都能轻松应对。

如果你有类似文件处理的批量需求,欢迎留言,我可以把这些命令封装成 .bat 或 PowerShell 脚本打包好发你,效率拉满。


📦 附送:一键打包 CMD 脚本(可选放在文末或评论区)

@echo off
for %%f in (*.txt) do ren "%%f" "%%~nf.md"
echo 所有 txt 文件已成功改成 md!
pause

如果你觉得这篇文章有帮助,记得点赞收藏,下次再找就方便多了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码简单说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值