用 Cursor 写个批量重命名脚本,我以为 1 分钟搞定,结果踩了 2 个大坑

作为一名经常要处理大量素材的创作者,上周我经历了一个极其崩溃的瞬间:

为了准备一个新项目的视频,我从各个渠道下载了近百个素材。打开文件夹的那一刻,我眼前一黑——文件名全是类似 wx_camera_16987234.mp4IMG_8848_final_v2.jpg1a2b3c4d.png 这样的乱码。

按照以往的习惯,我可能会叹口气,然后一边听播客一边手动 F2 重命名,大概要耗费半个小时。

但在这个 AI 时代,手动改文件名简直是对生产力的侮辱。既然电脑里装着当下最火的 AI 编程神器 Cursor,为什么不让它帮我写个自动化脚本呢?

我以为这会是一个“1分钟搞定,准点下班”的爽文故事,但没想到,在这个过程中我结结实实地踩了两个大坑。

今天这篇文章,我就来为你复盘这次真实的 AI 编程实战。无论你是完全不懂代码的小白,还是有一定基础的进阶玩家,看完这篇,你都能掌握用 AI 零基础写自动化脚本的“正确姿势”。

---

一、一句大白话,1分钟生成可用脚本

对于没有任何编程基础的人来说,Cursor 最大的魅力在于:你只需要会说人话。

我打开 Cursor,新建了一个名为 rename.py 的文件,按下 Ctrl+K(或者 Cmd+K),直接输入了我的第一版 Prompt(提示词):

初级 Prompt:
“帮我写个 Python 脚本,把当前文件夹里所有的图片和视频文件,按照‘项目名_日期_序号’的格式重新命名。项目名默认叫‘8848AI_Project’,序号从 01 开始。”

大约只过了 5 秒钟,Cursor 就刷刷刷地生成了一段几十行的 Python 代码。我点击了 Accept(接受),然后在终端里敲下 python rename.py,按下回车。

(🧠 脑补一下这里有一个 3 秒的 GIF 动图:按下回车的瞬间,原本杂乱无章的文件列表,像被施了魔法一样,瞬间整齐划一。) 【Before:运行前】
wx_camera_16987234.jpg

IMG_8848_final.mp4

download_image_001.png

【After:运行后】
8848AI_Project_20231025_01.jpg

8848AI_Project_20231025_02.mp4

8848AI_Project_20231025_03.png

那一刻,看着整齐的文件名,我感受到了前所未有的爽感。AI 编程的门槛,真的已经被踩碎在地上了。

---

二、高潮反转:我以为我是极客,结果踩了 2 个大坑

就在我沾沾自喜,准备把这个脚本奉为圭臬时,现实很快给了我两记响亮的耳光。

坑1:没有“后悔药”(破坏性执行)

脚本跑完后,我盯着文件名看了一会儿,突然觉得:8848AI_Project 这个前缀太长了,我想改成简短的 8848_

于是我准备再跑一次脚本。但尴尬的事情发生了:原文件名已经被彻底覆盖,脚本根本不知道哪些文件是刚才改过的,如果再跑一次,序号逻辑全乱了。

传统的重命名软件通常都有“撤销”功能,但我让 AI 写的这几十行代码,是一把没有保险的“快刀”。如果在一个包含重要系统文件的文件夹里误触了这个脚本,那将是一场灾难。

✅ 解法:引入“预览”与“撤销日志”

我立刻回到 Cursor,要求它修改代码逻辑:

进阶 Prompt 补充:
“这个脚本太危险了。请做两点修改:
1. 增加 Dry Run(预览)模式:默认运行只打印修改前后的名字对比,不真正修改。只有加上 --execute 参数时才真正重命名。
2. 增加撤销功能:每次真正重命名时,在当前目录生成一个 undo_log.json 文件,记录旧名字和新名字的映射关系。并提供一个撤销指令来恢复原名。”

Cursor 马上领会了我的意思。它巧妙地利用 JSON 文件做了一个“后悔药”机制。

核心代码片段展示:
# Cursor 生成的生成撤销日志逻辑

undo_mapping = {}

for old_name, new_name in rename_list:

os.rename(old_name, new_name)

undo_mapping[new_name] = old_name

将映射写入日志文件

with open('undo_log.json', 'w', encoding='utf-8') as f:

json.dump(undo_mapping, f, indent=4)

print("✅ 重命名完成!如需撤销,请运行 python rename.py --undo")

有了这个日志,我再也不怕手抖改错文件名了。

坑2:忽略了“边缘场景”(文件冲突与隐藏文件)

过了几天,我把这个脚本发给用 Mac 的同事用。没过两分钟,他发来一张满是红色报错的终端截图:

PermissionError: [Errno 1] Operation not permitted: '.DS_Store'

原来,Mac 系统会在文件夹里自动生成隐藏文件 .DS_Store。我最初的脚本非常粗暴,把所有文件都抓过来重命名,结果碰到了没有后缀名的隐藏文件,直接报错中断了。

不仅如此,如果有两个文件恰好生成了相同的新名字,脚本也会直接崩溃,并且会导致一半的文件改了名,另一半没改的尴尬局面。

✅ 解法:把报错信息直接喂给 AI

这就是用 AI 写代码最爽的地方:你不需要去 StackOverflow 上搜报错信息,直接把报错截图或文本扔给 Cursor 就行了。

不过在这里,我强烈建议大家把 Cursor 右侧对话框的模型切换到 Claude Sonnet 4.6。作为目前的绝对主力模型,它在理解代码逻辑和修复 Bug 方面,是公认最强的。

💡 进阶用户的生存指南:

>

在让 Cursor 反复帮我修 Bug 的过程中,我发现免费版的 Fast 请求额度用得飞快。如果你像我一样是个重度用户,或者想在本地无缝调用顶级的 AI 模型,配置一个稳定、高性价比的 API 接口就非常必要了。

>

我目前在用的是 api.884819.xyz。它完美解决了国内开发者的痛点:
- 注册极简: 只需要用户名+密码,连邮箱验证都不需要,10秒搞定。
- 白嫖福利: 注册就送 5 元体验额度,够跑好几百次脚本了。
- 国产免费: 平台上的 Deepseek R1/V3、通义千问 Qwen3 等国产大模型完全免费
- 模型齐全: 想要顶配逻辑?直接调用 Claude Opus 4.6 或 Gemini 3.1 Pro,按量付费,没有月租订阅的压力。

>

注册后平台内置了 AI 对话功能直接能用,也可以把生成的 API Key 填进 Cursor 里,瞬间满血复活。有需要的朋友直接访问官网体验。

依靠 Claude Sonnet 4.6 的强大逻辑,它迅速帮我加上了防御性代码:跳过以 . 开头的隐藏文件,并在重命名前检查目标文件名是否已存在。

---

三、主编总结:用 AI 写代码的 3 个黄金法则

经过这次“跌宕起伏”的重命名脚本开发之旅,我总结出了用 AI 辅助编程的 3 条黄金法则,无论你是写 Python 还是做前端,都绝对适用:

1. 先跑通,再优化(Iterative Prompting):

不要指望一个 Prompt 就能生成完美的、包含所有异常处理的几百行代码。先用最简单的大白话让 AI 写个 MVP(最小可行性产品),看到效果后,再一步步提要求加功能。

2. 永远记得“防御性编程”:

AI 是个极其听话的执行者,你让它删它就真删。凡是涉及到文件修改、数据删除的操作,一定要让 AI 加上 Dry Run(预览)和备份/日志逻辑。给自己留一颗后悔药。

3. 把 AI 当作结对编程的同事,而不是神:

AI 会犯错,会忽略边缘场景(比如 Mac 的 .DS_Store)。你需要用你的业务常识去引导它,遇到 Bug 不要慌,把报错信息直接扔给它,让“同事”自己修自己写的 Bug。

---

写在最后

搞定了本地文件重命名,看着文件夹里整整齐齐的素材,我喝了口咖啡,突然冒出了一个更大胆的想法:

既然 Cursor 配合顶级模型连本地文件都能随便拿捏,那网上的海量数据呢?每天去各个网站手动下载行业报告、整理数据,是不是也太原始了?

下一篇文章,我将为你带来更硬核、更实用的实操教程: 《完全不懂爬虫,我用 Cursor 写了个脚本,每天自动把某网站的行业日报下载并转成 PDF》

想知道进阶版的自动化怎么玩?关注 8848AI,我们下期见,继续用 AI 把繁琐的工作彻底自动化!

* 本文由8848AI原创,转载请注明出处。关注8848AI,带你从零开始学AI。

#AI教程 #Cursor #Claude #人工智能 #8848AI #AI学习 #Prompt技巧 #自动化办公