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服务器(7):阻塞操作的实现
Dec 18 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
基于Nodejs利用socket.io实现多人聊天室
Feb 22 NodeJs
NodeJS学习笔记之Module的简介
Mar 24 NodeJs
nodejs操作mongodb的填删改查模块的制作及引入实例
Jan 02 NodeJs
nodejs中Express与Koa2对比分析
Feb 06 NodeJs
nodejs中request库使用HTTPS代理的方法
Apr 30 NodeJs
nodejs文件夹深层复制功能
Sep 03 NodeJs
图解NodeJS实现登录注册功能
Sep 16 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 NodeJs
Nodejs封装类似express框架的路由实例详解
Jan 05 NodeJs
Nodejs文件上传、监听上传进度的代码
Mar 27 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
Smarty安装配置方法
2008/04/10 PHP
php获取淘宝分类id示例
2014/01/16 PHP
PHP错误处理函数
2016/04/03 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
js cookies 常见网页木马挂马代码 24小时只加载一次
2009/04/13 Javascript
Prototype Function对象 学习
2009/07/12 Javascript
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
基于javaScript的this指向总结
2017/07/22 Javascript
js 计算图片内点个数的示例代码
2019/04/04 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
python异步任务队列示例
2014/04/01 Python
小结Python用fork来创建子进程注意事项
2014/07/03 Python
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Python读取图片EXIF信息类库介绍和使用实例
2014/07/10 Python
Python使用SQLite和Excel操作进行数据分析
2018/01/20 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
2021/03/03 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
关于环保的建议书
2014/05/12 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
小学母亲节活动总结
2015/02/10 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
导游词之韩国济州岛
2019/10/28 职场文书