【问题标题】:Javascript automation for files move into another folder文件的 Javascript 自动化移动到另一个文件夹
【发布时间】:2015-06-06 21:15:38
【问题描述】:

我的服务器中有一个文件夹,其中包含一些文件。这些是自动化的,这意味着我们每天都会自动获取新文件,这将覆盖旧文件。所以想备份这些数据。如何通过在复制时用当前日期重命名文件来将所有这些文件复制到另一个文件夹中。

例如:我有一个名为 folder1 的文件夹,其中包含 4 个文件。这个文件夹的路径是home/webapps/project1/folder1

aaa.csv
bbb.csv
ccc.csv
ddd.csv

现在我想将所有这四个文件复制到一个名为 folder2 的不同文件夹中。此文件夹的路径是home/webapps/project1/folder2。在复制这些文件时,我想重命名每个文件并将当前日期添加到文件中。所以我在folder2 中的文件名应该是..

aaa091012.csv
bbb091012.csv
ccc091012.csv
ddd091012.csv

我想为此使用 Javascript 编写一个脚本。请给我一些想法或一些与此相关的示例脚本。

【问题讨论】:

  • 这被标记为gruntjs。解决方案是否需要使用 grunt?
  • @positlabs 是的,如果我们使用 grunt 那就太好了
  • 我假设您搜索了 npmjs.org 并尝试了您找到的东西?他们是什么,他们为什么不够好?
  • @Mike'Pomax'Kamermans 我是 node 新手,你能帮我解决一下吗...
  • 搜索 npmjs.org - 它可以让您找到所有立即安装以便在您的 nodejs 项目中使用的东西。需要node-cronnpm install node-cron 完成,在你的源代码中你现在可以说require("node-cron"),就像你需要基本的 Node.js API 一样

标签: javascript jquery node.js gruntjs npm


【解决方案1】:

你可以试试这个代码:

var fs = require('fs');
var path = require('path');

function dateFormat(){
    var date = new Date();
    var year  = (date.getFullYear() + '').slice(2);
    var month = (date.getMonth() + 1) < 10 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1);
    var day   = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
    return year+month+day;
}
function moveAndRename(sourceDir, destDir){
    fs.readdir(sourceDir, function(err, files){
        if(err)
            return err;
        else {
            files.forEach(function(file){
                var dotIndex = file.lastIndexOf(".");
                var name = file.slice(0, dotIndex);

                var newName = (name + dateFormat()) + path.extname(file);

                var read = fs.createReadStream(path.join(sourceDir, file));
                var write = fs.createWriteStream(path.join(destDir, newName));
                read.pipe(write);
            });
        }
    });
}

moveAndRename("/home/webapps/project1/folder1",
              "/home/webapps/project1/folder2")

你可以使用这个 npm 库:https://github.com/ncb000gt/node-cron,来做一些自动化的工作。

【讨论】:

  • 谢谢你的回复...有没有教程如何执行代码看看
  • 只需将此代码保存在文件copy.js 中,然后运行node copy.js
  • 是否可以自动压缩文件并解压缩
  • 我需要打开配置文件并更改安装程序值并执行 .exe 文件例如在配置文件中我有这样的值 PPP.install= iphone 我需要将其更改为 PPP。安装=安卓
  • 将文件从源文件夹复制到目标文件夹的完美答案。如果有人想动态设置目标文件夹,请确保在调用 moveAndRename 之前调用此函数。 fs.mkdirSync(destDir, { recursive: true });
猜你喜欢
  • 1970-01-01
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-25
  • 1970-01-01
相关资源
最近更新 更多