nodejs调用cmd命令实现复制目录


Posted in NodeJs onMay 04, 2015

工作中一直需要对一些官网进行文件复制,并且替换内部的一些信息,以前都是手动操作的,或者通过自己写的firefox扩展来进行文件操作的。

现在前端有nodejs了,为什么不用nodejs写个一键式的呢~~

1.复制目录

复制文件的时候,如果直接创建一个不存在的文件目录下就不成功了。要上级目录存在才可以。(nodejs API接触时间不长,如有有误,谢谢指正)。

这样在写入文件的时候就检测一下目录是否存在,不存在则判断上级目录,之后一级一级目录创建回来,之后就可以复制文件了

var dirCache = {};//缓存减少判断
function makedir (pathStr, callback) {
  if (dirCache[pathStr] == 1) {
    callback();
  } else {
    fs.exists(pathStr, function (exists) {
      if (exists == true) {
        dirCache[pathStr] == 1;
        callback();
      } else {
        makedir(path.dirname(pathStr), function () {
          fs.mkdir(pathStr, function () {
            dirCache[pathStr] == 1;
            callback();
          })
        });
      }
    })
  }
};

2.后来还是考虑通过CMD命令“xcopy”实现,但是试了好9,直接执行,可是一直不行,有解决的,欢迎指正

var exec = require('child_process').exec;
  exec('xcopy D:\\WORK_new\\odinQuest D:\\WORK_new\\newGame /s /e /Q /Y /I',
    function (error, stdout, stderr) {
      if (error !== null) {
        //console.log('exec error: ' + error);
      }
    
  });

后来通过将CMD命令写入文件,通过call的方式调用的,就可以了。

fs.writeFile('xcopy.bat', cmdstr, function (err) {
  if (err) throw err;
  var exec = require('child_process').exec;
  exec('call "'+process.cwd()+'/xcopy.bat',
    function (error, stdout, stderr) {
      if (error !== null) {
        //console.log('exec error: ' + error);
      }
    
  });
});

嗯,代码写的也就那样,都是一步步的异步嵌套,就不放出来了,省的被笑话

以上所述就是本文的全部内容了,希望大家能够喜欢。

NodeJs 相关文章推荐
NodeJS Express框架中处理404页面一个方式
May 28 NodeJs
使用forever管理nodejs应用教程
Jun 03 NodeJs
NodeJS连接MongoDB数据库时报错的快速解决方法
May 13 NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 NodeJs
Nodejs中Express 常用中间件 body-parser 实现解析
May 22 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
Nodejs 复制文件/文件夹的方法
Aug 24 NodeJs
Nodejs使用Mongodb存储与提供后端CRD服务详解
Sep 04 NodeJs
Nodejs异步流程框架async的方法
Jun 07 NodeJs
nodejs读取图片返回给浏览器显示
Jul 25 NodeJs
nodejs利用readline提示输入内容实例代码
Jul 15 NodeJs
nodejs通过phantomjs实现下载网页
May 04 #NodeJs
nodejs实现HTTPS发起POST请求
Apr 23 #NodeJs
PHP和NodeJs开发的应用如何共用Session
Apr 16 #NodeJs
Nodejs学习笔记之测试驱动
Apr 16 #NodeJs
Nodejs学习笔记之入门篇
Apr 16 #NodeJs
Windows系统下使用Sublime搭建nodejs环境
Apr 13 #NodeJs
nodejs开发微博实例
Mar 25 #NodeJs
You might like
谈谈关于php的优点与缺点
2013/04/11 PHP
php使用function_exists判断函数可用的方法
2014/11/19 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
2016/08/25 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
Python实现的购物车功能示例
2018/02/11 Python
python表格存取的方法
2018/03/07 Python
Python编程中flask的简介与简单使用
2018/12/28 Python
对Python _取log的几种方式小结
2019/07/25 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
英语自荐信常用语句
2013/12/13 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
班级文化建设标语
2014/06/23 职场文书
党性心得体会
2014/09/03 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
帝企鹅日记观后感
2015/06/10 职场文书
孙振耀退休感言
2015/08/01 职场文书
小学副班长竞选稿
2015/11/21 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书