nodejs調(diào)用cmd命令實(shí)現(xiàn)復(fù)制目錄
工作中一直需要對(duì)一些官網(wǎng)進(jìn)行文件復(fù)制,并且替換內(nèi)部的一些信息,以前都是手動(dòng)操作的,或者通過(guò)自己寫(xiě)的firefox擴(kuò)展來(lái)進(jìn)行文件操作的。
現(xiàn)在前端有nodejs了,為什么不用nodejs寫(xiě)個(gè)一鍵式的呢~~
1.復(fù)制目錄
復(fù)制文件的時(shí)候,如果直接創(chuàng)建一個(gè)不存在的文件目錄下就不成功了。要上級(jí)目錄存在才可以。(nodejs API接觸時(shí)間不長(zhǎng),如有有誤,謝謝指正)。
這樣在寫(xiě)入文件的時(shí)候就檢測(cè)一下目錄是否存在,不存在則判斷上級(jí)目錄,之后一級(jí)一級(jí)目錄創(chuàng)建回來(lái),之后就可以復(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.后來(lái)還是考慮通過(guò)CMD命令“xcopy”實(shí)現(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);
}
});
后來(lái)通過(guò)將CMD命令寫(xiě)入文件,通過(guò)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);
}
});
});
嗯,代碼寫(xiě)的也就那樣,都是一步步的異步嵌套,就不放出來(lái)了,省的被笑話
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
node-sass常見(jiàn)報(bào)錯(cuò)的問(wèn)題及解決方法
在安裝node-sass時(shí),經(jīng)常會(huì)遇到下載慢、版本不匹配或python錯(cuò)誤等問(wèn)題,使用淘寶鏡像加速下載、通過(guò)nvm管理node版本或指定node-sass版本號(hào)安裝,都能有效解決這些問(wèn)題,若遇到python相關(guān)錯(cuò)誤,檢查node版本是否合適通??梢越鉀Q,感興趣的朋友一起看看本文吧2024-09-09
node項(xiàng)目使用http模塊發(fā)送get-post請(qǐng)求方式
這篇文章主要介紹了node項(xiàng)目使用http模塊發(fā)送get-post請(qǐng)求方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09
nodejs實(shí)現(xiàn)范圍請(qǐng)求的實(shí)現(xiàn)代碼
這篇文章主要介紹了nodejs實(shí)現(xiàn)范圍請(qǐng)求的實(shí)現(xiàn)代碼,使服務(wù)器支持范圍請(qǐng)求,允許客戶端只請(qǐng)求文檔的一部分,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-10-10
Node.js DES加密的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇Node.js DES加密的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07
nodejs利用readline提示輸入內(nèi)容實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于nodejs利用readline提示輸入內(nèi)容的相關(guān)資料,Readline是Node.js里實(shí)現(xiàn)標(biāo)準(zhǔn)輸入輸出的封裝好的模塊,通過(guò)這個(gè)模塊我們可以以逐行的方式讀取數(shù)據(jù)流,需要的朋友可以參考下2021-07-07
koa-compose簡(jiǎn)單實(shí)現(xiàn)及使用的妙處
這篇文章主要為大家介紹了koa-compose簡(jiǎn)單實(shí)現(xiàn)及使用的妙處詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04

