Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文件移动到另一个文件夹的Javascript自动化_Javascript_Jquery_Node.js_Gruntjs_Npm - Fatal编程技术网

文件移动到另一个文件夹的Javascript自动化

文件移动到另一个文件夹的Javascript自动化,javascript,jquery,node.js,gruntjs,npm,Javascript,Jquery,Node.js,Gruntjs,Npm,我的服务器中有一个文件夹,其中包含一些文件。这些都是自动化的,这意味着我们每天都会自动获取新文件,从而覆盖旧文件。所以我想备份一下这些数据。如何在复制时使用当前日期重命名这些文件,从而将所有这些文件复制到另一个文件夹中 我有一个名为folder1的文件夹,其中包含4个文件。此文件夹的路径为home/webapps/project1/folder1 aaa.csv bbb.csv ccc.csv ddd.csv 现在我想将这四个文件复制到另一个名为folder2的文件夹中。此文件夹的路径为hom

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

我有一个名为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为此编写一个脚本。请给我一些与此相关的想法或示例脚本。

您可以尝试以下代码:

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")
var fs=require('fs');
var path=require('path');
函数dateFormat(){
变量日期=新日期();
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();
返回年+月+日;
}
函数moveAndRename(sourceDir、destDir){
fs.readdir(sourceDir,函数(err,文件){
如果(错误)
返回错误;
否则{
forEach(函数(文件){
var dotIndex=file.lastIndexOf(“.”);
var name=file.slice(0,点索引);
var newName=(name+dateFormat())+path.extname(文件);
var read=fs.createReadStream(path.join(sourceDir,file));
var write=fs.createWriteStream(path.join(destDir,newName));
读。管(写);
});
}
});
}
moveAndRename(“/home/webapps/project1/folder1”,
“/home/webapps/project1/folder2”)

您可以使用这个npm库:,来完成一些自动命名的工作。

这被标记为
gruntjs
。这个解决方案需要使用grunt吗?@positlabs是的,如果我们使用grunt,那么应该是greatI假设您搜索了npmjs.org并尝试了您找到的东西?它们是什么?它们如何不够好?@Mike'Pomax'Kamermans我是node的新手,你能帮我吗…搜索npmjs.org-它可以让你找到所有立即安装在nodejs项目中使用的东西。是否需要
节点cron
npm安装node cron
完成后,在源代码中,您现在可以说
require(“node cron”)
,就像您需要basic node.js APIsthanks作为回复一样……是否有教程介绍如何执行代码,请参见将此代码保存在文件
copy.js
,然后运行
node copy.js
。是否可以自动压缩文件并将其解压缩到。我需要打开配置文件并更改安装程序值并执行.exe文件,例如在配置文件中,我有类似于此的值。install=iphone我需要将其更改为PPP。install=androidPerfect从源代码复制文件到目标文件夹。如果有人想动态设置目标文件夹,请确保在调用MoveAnderName之前调用此函数。mkdirSync(destDir,{recursive:true});