nodejs調用cmd命令實現複製目錄_node.js

來源:互聯網
上載者:User

工作中一直需要對一些官網進行檔案複製,並且替換內部的一些資訊,以前都是手動操作的,或者通過自己寫的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);      }      });}); 

嗯,代碼寫的也就那樣,都是一步步的非同步嵌套,就不放出來了,省的被笑話

以上所述就是本文的全部內容了,希望大家能夠喜歡。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.