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服务器(8):非阻塞是如何实现的
Dec 18 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
nodejs+express搭建多人聊天室步骤
Feb 12 NodeJs
详解Nodejs内存治理
May 13 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
Nodejs让异步变成同步的方法
Mar 02 NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 NodeJs
详解NodeJS模块化
Jun 15 NodeJs
node快速搭建后台的实现步骤
Feb 18 NodeJs
Node.js实现爬取网站图片的示例代码
Apr 04 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
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
PHP实现的购物车类实例
2015/06/17 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
浅谈Javascript变量作用域问题
2014/12/16 Javascript
angularJS 入门基础
2015/02/09 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
谈谈JS中的!!
2017/12/07 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
python的类方法和静态方法
2014/12/13 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
2018/03/13 Python
set在python里的含义和用法
2019/06/24 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
python3 enum模块的应用实例详解
2019/08/12 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
python函数超时自动退出的实操方法
2020/12/28 Python
干部行政关系介绍信
2014/01/17 职场文书
检查接待方案
2014/02/27 职场文书
项目施工员岗位职责
2014/03/09 职场文书
C++程序员求职信
2014/05/07 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
社区党建工作总结2015
2015/05/13 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android