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的前后端分离的思考与实践(一)全栈式开发
Sep 26 NodeJs
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 NodeJs
nodejs+express实现文件上传下载管理网站
Mar 15 NodeJs
NodeJS处理Express中异步错误
Mar 26 NodeJs
nodejs爬虫遇到的乱码问题汇总
Apr 07 NodeJs
nodejs批量下载图片的实现方法
May 19 NodeJs
nodeJS实现路由功能实例代码
Jun 08 NodeJs
nodejs动态创建二维码的方法
Aug 12 NodeJs
nodejs简单实现TCP服务器端和客户端的聊天功能示例
Jan 04 NodeJs
详解redis在nodejs中的应用
May 02 NodeJs
基于nodejs res.end和res.send的区别
May 14 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 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模板类代码
2008/09/07 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
PHP利用二叉堆实现TopK-算法的方法详解
2017/04/24 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
jQuery的运行机制和设计理念分析
2011/04/05 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
Python图像处理之简单画板实现方法示例
2018/08/30 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
从python读取sql的实例方法
2020/07/21 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
异步传递消息系统的作用
2016/05/01 面试题
追悼会上的答谢词
2014/01/10 职场文书
特色冷饮店创业计划书
2014/01/28 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
财务助理岗位职责范本
2014/10/09 职场文书
医生个人年度总结
2015/02/28 职场文书
新教师教学工作总结
2015/08/12 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫