nodejs調(diào)用cmd命令實現(xiàn)復(fù)制目錄
工作中一直需要對一些官網(wǎng)進行文件復(fù)制,并且替換內(nèi)部的一些信息,以前都是手動操作的,或者通過自己寫的firefox擴展來進行文件操作的。
現(xiàn)在前端有nodejs了,為什么不用nodejs寫個一鍵式的呢~~
1.復(fù)制目錄
復(fù)制文件的時候,如果直接創(chuàng)建一個不存在的文件目錄下就不成功了。要上級目錄存在才可以。(nodejs API接觸時間不長,如有有誤,謝謝指正)。
這樣在寫入文件的時候就檢測一下目錄是否存在,不存在則判斷上級目錄,之后一級一級目錄創(chuàng)建回來,之后就可以復(fù)制文件了
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”實現(xiàn),但是試了好9,直接執(zhí)行,可是一直不行,有解決的,歡迎指正
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的方式調(diào)用的,就可以了。
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);
}
});
});
嗯,代碼寫的也就那樣,都是一步步的異步嵌套,就不放出來了,省的被笑話
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
node項目使用http模塊發(fā)送get-post請求方式
這篇文章主要介紹了node項目使用http模塊發(fā)送get-post請求方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-09-09
nodejs利用readline提示輸入內(nèi)容實例代碼
這篇文章主要給大家介紹了關(guān)于nodejs利用readline提示輸入內(nèi)容的相關(guān)資料,Readline是Node.js里實現(xiàn)標(biāo)準(zhǔn)輸入輸出的封裝好的模塊,通過這個模塊我們可以以逐行的方式讀取數(shù)據(jù)流,需要的朋友可以參考下2021-07-07

