用 ChatGPT 生成小腳本,直接復制就能用了
大家好,我是前端西瓜哥。最近我有個個人需求,要寫個小腳本。
我有一個基于 hexo 生成的個人靜態博客網站,想要給博客的所有的篇文章的尾部加一段廣告文案,我不想寫這種沒啥意思的腳本,就找 ChatGPT 幫我寫一段小腳本。
初版
因為我是前端開發,所以我選擇讓 ChatGPT 給我生成 nodejs 腳本。其他 sh、python 其實也可以,但我真不熟,不好確認代碼是否符合需求。
描述很簡潔,ChatGPT 給的結果看著不錯。
加上細節要求
但我接著發現我有個細節沒有提供,就是文件路徑需要在文件里提供。我期待通過命令行參數傳入路徑,因為在 bash 環境下,可以通過 tab 鍵來補全路徑,既方便又不容易出錯。
得益于 ChatGPT 的上下文聯想能力,我們可以基于上面的問題,加入新的要求。
還提供了使用案例:
完整代碼
const fs = require('fs');
const path = require('path');
// 從命令行參數中獲取文件夾路徑
const directoryPath = process.argv[2];
if (!directoryPath) {
console.error('請提供要處理的文件夾路徑');
process.exit(1);
}
const suffix = '\n\n這是添加的字符串。'; // 將要添加的字符串放在這里
fs.readdir(directoryPath, (err, files) => {
if (err) {
console.error(`無法讀取目錄:${directoryPath}`, err);
return;
}
// 僅處理 Markdown 文件
const markdownFiles = files.filter(file => path.extname(file).toLowerCase() === '.md');
markdownFiles.forEach(file => {
const filePath = path.join(directoryPath, file);
// 讀取文件內容
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error(`無法讀取文件:${filePath}`, err);
return;
}
// 將字符串添加到文件末尾
const content = `${data.trim()}${suffix}`;
// 將更改保存回原始文件
fs.writeFile(filePath, content, 'utf8', err => {
if (err) {
console.error(`無法寫入文件:${filePath}`, err);
return;
}
console.log(`已更新文件:${filePath}`);
});
});
});
});
使用
將代碼拷貝到我創建的 js 文件下,將里面的 suffix 替換為自己需要填充的內容。
然后執行:
node scripts/add-footer-qrcode.js source/_posts
可以看到,文件夾下的 100 多個 md 文件的末尾都加上了這段文字。
結尾
我是前端西瓜哥,歡迎關注我,一起感受 AI 的日新月異的變化。
ChatGPT 用來寫簡單的腳本或算法,那叫一個牛逼。
你要是讓我來寫,還是挺花時間的,里面小細節挺多,快的話寫加測試也得半小時,但 ChatGPT 它來了,它 10s 就給你寫好了,我們復制一下,改改就能用,甚至不用改!