使用 nodejs 對文件進行批量重命名


0. 前言

從B站下載了一點視頻,碩鼠自動將標題添加到了每個文件名的前面,導致文件名過長,不方面查看文件的具體內容。

雖然只有二十幾個文件,但是手動刪除前綴還是個不小的工作量,還有可能刪除錯誤。考慮到正在努力成為一個程序員,應該為每一個帶有重復屬性的工作尋求優化。

想到nodejs可以讀寫文件,決定嘗試使用nodejs來實現。網上搜到一點類似做法,根據自己需要,改吧改吧,二十分鍾寫好了(確實比手動刪除慢了好多==)。

1. 引包

// nodejs中文件操作主要依靠fs模塊
const fs = require('fs')

2. 實現

// 1. 定義兩個工具函數
// 獲取指定目錄路徑下的所有文件名
const getFileNames = path => {
    // 使用readdir獲取指定目錄下的所有文件名
    return fs.readdirSync(path);;
}

// 根據指定字符截取文件名,返回截取后的字段
const getFileSuffix =  (fileName, splitChar) => {
    // 取字符第一次出現的位置
    const first = fileName.indexOf(splitChar); 
    // 取字符最后一次出現的位置(根據需要選擇)
    // const first = fileName.lastIndexOf(splitChar); 

    const namelength = fileName.length; //取到文件名長度
    return fileName.substring(first + 1, namelength); //截取獲得后綴名
}

// 2. 定義目錄
const dirName = `D:\\3. 生活\\3.2 文件下載\\碩鼠下載\\我的解析任務1912152356`;

// 3. 讀取與改寫
let files = getFileNames(dirName);
files.forEach((item, i) => {
    // 這里對舊名操作獲取新名
    let newName = getFileSuffix(item, "-")
    // 使用rename方法進行重命名
    fs.rename(`${dirName}\\${item}`, `${dirName}\\${newName}`, (err) => {
        if (err) throw err;
        console.log('重命名完成');
    });
})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM