萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> nodejs調試cmd命令實現復制目錄

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_newodinQuest D:WORK_newnewGame /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);

  }

  });

  });

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

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

copyright © 萬盛學電腦網 all rights reserved