尝试编写一个node.js脚本以使用正则表达式批量命名文件并搜索/替换

时间:2018-12-08 03:48:38

标签: node.js fs

我试图弄清楚我认为应该是一个非常简单的脚本,但是它似乎对我没有用。 我有一个数百个文件的列表,这些文件的名称很难读,我想尝试将其重命名为更易于组织和理解的文件。 我需要做的是获取目录中所有文件的列表,循环浏览每个文件,获取其文件名,进行一些正则表达式搜索以从文件名中获取一些信息,然后使用该信息生成新的文件名并重命名文件,然后将其移动到另一个目录(这样,在脚本完成后,旧目录为空,新目录中充满了新重命名的文件)

文件名有一种模式,可以很容易地与正则表达式匹配,以捕获生成新文件名所需的数据。我只需要知道如何获取每个文件,将其文件名读入变量,对其进行处理,然后使用数据来重命名该文件即可。

1 个答案:

答案 0 :(得分:2)

您可以使用fs.readdir来读取目录中的文件,然后使用fs.rename重命名它们。

const fs = require("fs")

// Read directory
fs.readdir("./", (err, files) => {
  // Cicle files on current folder
  for (const file of files) {
    // Test regular expression
    if (/[A-Z]/g.test(file)) {
      // Add more logic to rename file
      fs.rename(file, 'newFile.txt', (err) => {
        console.log('Renaming', file, "to", "newFile.txt")
        if (err) throw err
      })
    }
  }
})