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之path模块

    深入理解node.js之path模块

    本篇文章主要介绍了深入理解node.js之path模块,详细介绍了path模块的用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • nodejs递归文件夹获取所有文件路径实例

    nodejs递归文件夹获取所有文件路径实例

    这篇文章主要为大家介绍了nodejs递归文件夹获取所有文件路径实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • node-sass常见报错的问题及解决方法

    node-sass常见报错的问题及解决方法

    在安装node-sass时,经常会遇到下载慢、版本不匹配或python错误等问题,使用淘宝镜像加速下载、通过nvm管理node版本或指定node-sass版本号安装,都能有效解决这些问题,若遇到python相关错误,检查node版本是否合适通常可以解决,感兴趣的朋友一起看看本文吧
    2024-09-09
  • node项目使用http模块发送get-post请求方式

    node项目使用http模块发送get-post请求方式

    这篇文章主要介绍了node项目使用http模块发送get-post请求方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09
  • nodejs实现范围请求的实现代码

    nodejs实现范围请求的实现代码

    这篇文章主要介绍了nodejs实现范围请求的实现代码,使服务器支持范围请求,允许客户端只请求文档的一部分,非常具有实用价值,需要的朋友可以参考下
    2018-10-10
  • Node.js DES加密的简单实现

    Node.js DES加密的简单实现

    下面小编就为大家带来一篇Node.js DES加密的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • nodejs利用readline提示输入内容实例代码

    nodejs利用readline提示输入内容实例代码

    这篇文章主要给大家介绍了关于nodejs利用readline提示输入内容的相关资料,Readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流,需要的朋友可以参考下
    2021-07-07
  • nvm安装指定版本node失败的解决方法

    nvm安装指定版本node失败的解决方法

    工作中,碰到一个项目需要旧版本的node运行(版本为14.21.3),于是我用nvm isntall 14.21.3按照该版本Node, 出现了报错,所以本文记录一下nvm安装指定版本node失败的解决方法,需要的朋友可以参考下
    2025-04-04
  • koa-compose简单实现及使用的妙处

    koa-compose简单实现及使用的妙处

    这篇文章主要为大家介绍了koa-compose简单实现及使用的妙处详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • node+vue实现文件上传功能

    node+vue实现文件上传功能

    这篇文章主要介绍了node+vue实现文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05

最新评论