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中的非阻塞方法介绍
Jun 05 NodeJs
使用upstart把nodejs应用封装为系统服务实例
Jun 01 NodeJs
基于 Docker 开发 NodeJS 应用
Jul 30 NodeJs
nodejs实现获取当前url地址及url各种参数值
Jun 25 NodeJs
Nodejs中 npm常用命令详解
Jul 04 NodeJs
nodejs入门教程二:创建一个简单应用示例
Apr 24 NodeJs
配置nodejs环境的方法
May 13 NodeJs
深入理解Nodejs Global 模块
Jun 03 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
NodeJS服务器实现gzip压缩的示例代码
Oct 12 NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 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编写注册后Email激活验证的实例代码
2013/03/11 PHP
php中使用sftp教程
2015/03/30 PHP
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
js获取url传值的方法
2015/12/18 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
jQuery 选择同时包含两个class的元素的实现方法
2016/06/01 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
原生JS实现列表内容自动向上滚动效果
2019/05/22 Javascript
解析原来浏览器原生支持JS Base64编码解码
2019/08/12 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
跟老齐学Python之复习if语句
2014/10/02 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
用python实现一个简单的验证码
2020/12/09 Python
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
美国气象仪器、花园装饰和墙壁艺术商店:Wind & Weather
2019/05/29 全球购物
C&A巴西网上商店:时尚、衣服、手机和鞋子
2020/06/07 全球购物
小学新学期教师寄语
2014/01/18 职场文书
酒店管理求职信范文
2014/04/06 职场文书
教师产假请假条
2014/04/10 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
create-react-app开发常用配置教程
2022/06/25 Javascript