0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何防止腳本重復(fù)運(yùn)行

汽車電子技術(shù) ? 來源:安卓腳本 ? 作者:Dcrclub ? 2023-03-03 14:07 ? 次閱讀

這個(gè)問題可以利用autojs本身提供的腳本引擎模塊來判斷.

已知任何系統(tǒng)在相同的路徑下,不可能出現(xiàn)兩個(gè)相同的文件名,因此思路就是在腳本運(yùn)行的開始, 獲取自身的腳本文件名稱和腳本所在路徑,然后獲取所有正在運(yùn)行的腳本.并提取出所有腳本的腳本名和腳本路徑. 再利用本身的腳本名和路徑去比對(duì),如果相同的腳本名和路徑名存在數(shù)量大于1則可證明本次腳本的運(yùn)行是重復(fù)運(yùn)行的,此時(shí)結(jié)束掉腳本即可.

代碼邏輯如下:

//獲取所有正在運(yùn)行的腳本引擎對(duì)象
var allEngines = engines.all();
var strArry = [];
for (let i of allEngines) {
    strArry.push(i.source);
    strArry.push(i.cwd());
}


//獲取當(dāng)前腳本的執(zhí)行路徑以及腳本名稱
var name = engines.myEngine().getSource();
var path = engines.myEngine().cwd();


//判斷引擎對(duì)象中是否包含本腳本的路徑以及名稱數(shù)量 大于1
var result = statisticalFieldNumber(strArry);
var nameCounts = result[name];
var pathCounts = result[path];
if (nameCounts > 1 && pathCounts > 1) {
    toast("當(dāng)前腳本正在運(yùn)行,無需重復(fù)執(zhí)行.");
    exit();
}


//5秒后彈一個(gè)toast,結(jié)束運(yùn)行
setTimeout(function() {
    toastLog("end");
}, 5000)


/**
 * 該方法判斷出傳入的數(shù)組中所有元素相同的個(gè)數(shù),返回一個(gè)對(duì)象
 * @param {arry} arr 一個(gè)數(shù)組
 */
function statisticalFieldNumber(arr) {
    return arr.reduce(function (prev, next) {
        prev[next] = (prev[next] + 1) || 1;
        return prev;
    }, {});
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    555

    瀏覽量

    24638
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

    14793
  • 系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    1005

    瀏覽量

    21273
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何優(yōu)化HLS仿真腳本運(yùn)行時(shí)間

    需求:由于自己目前一個(gè) HLS 仿真腳本需要運(yùn)行 1個(gè)多小時(shí),先打算通過打印時(shí)間戳的方式找出最耗時(shí)的部分,然后想辦法優(yōu)化。
    的頭像 發(fā)表于 02-23 09:29 ?580次閱讀

    MATLAB腳本運(yùn)行出錯(cuò)

    錯(cuò)誤1050發(fā)生于 雙串口 2.vi中的LabVIEW:執(zhí)行腳本時(shí)出錯(cuò)。來自服務(wù)器的錯(cuò)誤消息:??? 錯(cuò)誤使用 eig對(duì)于廣義特征值問題 EIG(A,B),A 和 B 的大小必須相同。出錯(cuò)
    發(fā)表于 03-09 09:44

    請(qǐng)問.zjs腳本怎么編寫和運(yùn)行

    .zjs腳本怎么編寫、運(yùn)行
    發(fā)表于 08-18 06:25

    如何使用腳本運(yùn)行ISE/VIVADO

    嗨,專家我以前在Windows下設(shè)計(jì),最近我搬到了linux。是否有關(guān)于如何使用腳本運(yùn)行ISE / VIVADO的指南,例如Perl的?謝謝??死锼挂陨蟻碜杂诠雀璺g以下為原文Hi, experts
    發(fā)表于 02-19 10:59

    WinForm C net阻止重復(fù)執(zhí)行的方法

    WinForm Cnet防止一個(gè)程序 WinForm 重復(fù)運(yùn)行的方法
    發(fā)表于 04-29 16:47

    rex防止腳本還沒執(zhí)行完成就立刻發(fā)起怎么回事

    rex 防止腳本還沒執(zhí)行完成,就立刻發(fā)起
    發(fā)表于 04-28 11:38

    什么是腳本

    什么是腳本腳本是什么意思,腳本錯(cuò)誤是什么意思電子發(fā)燒友深入為大家講解了腳本相關(guān)知識(shí)
    發(fā)表于 12-07 10:36 ?2787次閱讀

    怎樣用Wamp服務(wù)器運(yùn)行PHP腳本

    今天讓我解釋一下如何使用wamp服務(wù)器運(yùn)行PHP文件。您可以使用此方法來運(yùn)行您可能從某個(gè)地方獲得的PHP腳本,并且?guī)缀醪恍枰驇缀醪涣私釶HP。您可以通過輸出為Web瀏覽器的Web服務(wù)器執(zhí)行
    的頭像 發(fā)表于 10-05 17:37 ?6986次閱讀
    怎樣用Wamp服務(wù)器<b class='flag-5'>運(yùn)行</b>PHP<b class='flag-5'>腳本</b>

    什么是腳本腳本程序?qū)W習(xí)

    腳本中編寫VB腳本代碼。可以象使用系統(tǒng)函數(shù)一樣使用項(xiàng)目中完成的腳本。創(chuàng)建腳本時(shí),確定其型號(hào)并定義傳送參數(shù)?!癋unction”類型的腳本
    的頭像 發(fā)表于 05-11 10:39 ?6641次閱讀
    什么是<b class='flag-5'>腳本</b>?<b class='flag-5'>腳本</b>程序?qū)W習(xí)

    如何在Linux命令行中運(yùn)行Python腳本

    Python 腳本。 在本文中,我們將詳細(xì)介紹如何在 Linux 命令行中運(yùn)行 Python 腳本。我們將討論以下主題:
    的頭像 發(fā)表于 05-12 14:49 ?1618次閱讀

    注射器防止重復(fù)使用回推測(cè)試儀

    防止重復(fù)使用回推測(cè)試儀是依據(jù)YY /T 0573.4-2020 一次性使用無菌注射器第4部分:防止重復(fù)使用注射器中的相關(guān)標(biāo)準(zhǔn)設(shè)計(jì)制造的。注射器是指由塑料材料制成,帶針或不帶針的,用于抽
    的頭像 發(fā)表于 02-07 18:02 ?601次閱讀
    注射器<b class='flag-5'>防止</b><b class='flag-5'>重復(fù)</b>使用回推測(cè)試儀

    ie瀏覽器限制運(yùn)行腳本

    IE瀏覽器限制運(yùn)行腳本是指在Internet Explorer瀏覽器中,存在一些限制和安全策略,以保護(hù)用戶的電腦免受惡意腳本的攻擊。這些限制有助于防止在瀏覽器中執(zhí)行惡意代碼,保護(hù)用戶的隱私和電腦
    的頭像 發(fā)表于 11-26 11:19 ?1361次閱讀

    腳本錯(cuò)誤scripterror怎么解決

    腳本錯(cuò)誤”(Script Error)通常是在運(yùn)行或嘗試運(yùn)行一段腳本或程序時(shí)出現(xiàn)的錯(cuò)誤。這種錯(cuò)誤可能源于許多不同的原因,包括語法錯(cuò)誤、運(yùn)行
    的頭像 發(fā)表于 11-26 14:46 ?7097次閱讀

    js腳本怎么在瀏覽器中運(yùn)行

    在瀏覽器中運(yùn)行JavaScript腳本是一種常見的方式,因?yàn)镴avaScript是一種在Web瀏覽器中執(zhí)行的腳本語言。下面是一個(gè)詳細(xì)的,最少1500字的文章,介紹如何在瀏覽器中運(yùn)行
    的頭像 發(fā)表于 11-27 16:46 ?2558次閱讀

    執(zhí)行shell腳本的方式包括什么

    執(zhí)行Shell腳本的方式有很多種,以下是一些常見的方法: 直接運(yùn)行腳本文件 在命令行中,可以直接使用腳本文件的路徑來運(yùn)行腳本。例如: ./script. sh 這種方式需要確保
    的頭像 發(fā)表于 08-30 15:17 ?212次閱讀