nodejs调用cmd命令实现复制目录

 更新时间:2015年05月04日 09:15:05   投稿:hebedich  
本文给大家介绍的是如何在nodejs中调用CMD命令,从而实现目录的复制,非常的实用,有需要的小伙伴可以参考下。

工作中一直需要对一些官网进行文件复制,并且替换内部的一些信息,以前都是手动操作的,或者通过自己写的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);
      }
    
  });
}); 

嗯,代码写的也就那样,都是一步步的异步嵌套,就不放出来了,省的被笑话

以上所述就是本文的全部内容了,希望大家能够喜欢。

相关文章

  • Node.js的Web模板引擎ejs的入门使用教程

    Node.js的Web模板引擎ejs的入门使用教程

    ejs是Node世界的开源模板引擎中比较有人气的一个,而且并不只是在Express框架中才可以使用,今天为大家带来Node.js的Web模板引擎ejs的入门学习教程,其中侧重于ejs的layout页面布局放面
    2016-06-06
  • express框架,报错:“Cannot set headers after they are sent to the client”,解决方法总结

    express框架,报错:“Cannot set headers after t

    这篇文章主要介绍了express框架,报错:“Cannot set headers after they are sent to the client”,解决方法,结合实例形式总结分析了常见的问题原因与对应的解决方案,需要的朋友可以参考下
    2023-05-05
  • node.js之基础加密算法模块crypto详解

    node.js之基础加密算法模块crypto详解

    这篇文章主要介绍了node.js之基础加密算法模块crypto详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • nodejs实现超简单生成二维码的方法

    nodejs实现超简单生成二维码的方法

    这篇文章主要介绍了nodejs实现超简单生成二维码的方法,结合实例形式分析了nodejs基于qr-image插件生成二维码的相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • benny简单框架benchmark功能使用

    benny简单框架benchmark功能使用

    这篇文章主要为大家介绍了benny简单框架benchmark功能使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 使用koa-log4管理nodeJs日志笔记的使用方法

    使用koa-log4管理nodeJs日志笔记的使用方法

    这篇文章主要介绍了使用koa-log4管理nodeJs日志笔记的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Node.js开发者必须了解的4个JS要点

    Node.js开发者必须了解的4个JS要点

    这篇文章主要介绍了Node.js开发者必须了解的4个JS要点,Node.js是一个面向服务器的框架,立足于Chrome强大的V8 JS引擎。尽管它由C++编写而成,但是它及其应用是运行在JS上的,需要的朋友可以参考下
    2016-02-02
  • 通过nodejs 服务器读取HTML文件渲染到页面的方法

    通过nodejs 服务器读取HTML文件渲染到页面的方法

    今天小编就为大家分享一篇通过nodejs 服务器读取HTML文件渲染到页面的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • node.js中PC端微信小程序包解密的处理思路

    node.js中PC端微信小程序包解密的处理思路

    我们使用node.js去写一个解码的程序。根据上边加密的流程,我们首先读取加密文件,把前6个字节的固定字符串去除,这篇文章主要介绍了node.js中PC端微信小程序包解密,需要的朋友可以参考下
    2021-12-12
  • 利用yarn实现一个webpack+react种子

    利用yarn实现一个webpack+react种子

    其实以前就写过如何使用React-router和Webpack快速构建一个react程序。后来发现版本太老,于是乎最近又重新组织了下结构,使用最近发布的yarn作为包管理工具,介绍下基本安装步骤,有需要的朋友们下面来一起看看吧。
    2016-10-10

最新评论