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获取本机内网和外网ip地址的实现代码
Jun 01 NodeJs
NodeJS制作爬虫全过程(续)
Dec 22 NodeJs
Nodejs学习item【入门手上】
May 05 NodeJs
NodeJS远程代码执行
Aug 28 NodeJs
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
Nov 21 NodeJs
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
nodejs图片处理工具gm用法小结
Dec 12 NodeJs
Nodejs libuv运行原理详解
Aug 21 NodeJs
详解NodeJs项目 CentOs linux服务器线上部署
Sep 16 NodeJs
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
May 30 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 代码规范小结
2012/03/08 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
2014/01/06 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
python从入门到精通(DAY 2)
2015/12/20 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
Python异常处理操作实例详解
2018/05/10 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
python读写csv文件的方法
2019/08/13 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
自荐信范文
2013/12/10 职场文书
事业单位公务员的职业生涯规划
2014/01/15 职场文书
考察现实表现材料
2014/05/19 职场文书
2015年小学开学寄语
2015/02/27 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
浅析MongoDB之安全认证
2021/06/26 MongoDB
Golang bufio详细讲解
2022/04/21 Golang