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
Nov 08 NodeJs
nodejs开发环境配置与使用
Nov 17 NodeJs
nodejs搭建本地http服务器教程
Mar 13 NodeJs
详解NodeJS框架express的路径映射(路由)功能及控制
Mar 24 NodeJs
Express+Nodejs 下的登录拦截实现代码
Jul 01 NodeJs
nodejs构建本地web测试服务器 如何解决访问静态资源问题
Jul 14 NodeJs
windows系统下更新nodejs版本的方案
Nov 24 NodeJs
nodejs实现截取上传视频中一帧作为预览图片
Dec 10 NodeJs
NodeJs实现简单的爬虫功能案例分析
Dec 05 NodeJs
M2实现Nodejs项目自动部署的方法步骤
May 05 NodeJs
独立部署小程序基于nodejs的服务器过程详解
Jun 24 NodeJs
在NodeJs中使用node-schedule增加定时器任务的方法
Jun 08 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个人网站架设连环讲(一)
2006/10/09 PHP
MYSQL数据库初学者使用指南
2006/11/16 PHP
深入PHP FTP类的详解
2013/06/13 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
『JavaScript』限制Input只能输入数字实现思路及代码
2013/04/22 Javascript
angularJS提交表单(form)
2015/02/09 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
JS获取当前时间戳方法解析
2020/08/29 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
Python3模拟curl发送post请求操作示例
2019/05/03 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
详解Python文件修改的两种方式
2019/08/22 Python
Python笔试面试题小结
2019/09/07 Python
浅谈tensorflow中张量的提取值和赋值
2020/01/19 Python
毕业生医学检验求职信
2013/10/16 职场文书
高校学生干部的自我评价分享
2013/11/04 职场文书
音乐学个人的自荐书范文
2013/11/26 职场文书
大学系主任推荐信范文
2013/12/24 职场文书
2013年学期结束动员演讲稿
2014/01/07 职场文书
初中科学教学反思
2014/01/21 职场文书
企业承诺书格式
2014/05/21 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
党员自评材料范文
2014/12/17 职场文书
结婚堵门保证书
2015/05/08 职场文书
团日活动总结格式
2015/05/11 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers