相対パス ./testdir 配下に image-1.jpg から image-777.jpg まで あるファイルをそれぞれ 001.jpg から 777.jpg にリネームするスクリプト
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
'use strict'; const fs = require('fs'); const p = console.log; const rename = (fs, oldFilePath, newFilePath) => { fs.rename(oldFilePath, newFilePath, (err) => { err ? p(err) : null; }); }; const getPaddedStr = (n) => { if (n < 10) { return '00' + n; } if (n < 100) { return '0' + n; } return '' + n; }; /** image-1.jpg -> 100.jpg */ const getNewFileName = (oldFileName) => { const _1_jpg = oldFileName.split('-')[1]; const _1_jpgArr = _1_jpg.split('.'); const num = _1_jpgArr[0]; const ext = _1_jpgArr[1]; const newFileName = getPaddedStr(num) + '.' + ext; return newFileName; }; const renameForFiles = (rPath, files) => { files.forEach((oldFileName) => { const newFileName = getNewFileName(oldFileName); const oldFilePath = rPath + '/' + oldFileName; const newFilePath = rPath + '/' + newFileName; rename(fs, oldFilePath, newFilePath); p(oldFilePath + ' => ' + newFilePath); }); }; const rPath = './testdir'; fs.readdir(rPath, (err, files) => { if (err) throw err; renameForFiles(rPath, files); }); |