diff --git a/src/assets/index.js b/src/assets/index.js index 1de4dc0..24e4c2e 100644 --- a/src/assets/index.js +++ b/src/assets/index.js @@ -102,8 +102,8 @@ let Matched = cmd.match(/\{\{MatchedFiles(\[\d+\]){0,1}(\.\w{1,11}){0,1}\}\}/g) Matched && Matched.forEach(m => { repl = eval(m.slice(2, -2)) - typeof repl == 'object' && (repl = JSON.stringify(repl)) - cmd = cmd.replace(m, repl) + typeof repl == 'object' ? (repl = JSON.stringify(repl)) : (repl = repl.replace('\\', '\\\\')) + cmd = cmd.replace(m, repl.replace('$','$$$')) }) } // 窗口 @@ -117,7 +117,9 @@ // 获取资源管理器或访达当前目录 if (cmd.includes('{{pwd}}')) { repl = getCurrentFolderPathFix(); + console.log(repl); cmd = cmd.replace(/\{\{pwd\}\}/mg, repl) + console.log(cmd) } // 获取窗口信息 if (cmd.includes('{{WindowInfo')) { @@ -235,6 +237,7 @@ message(stdout) break; case "ignore": + case "nothing": break; default: break; @@ -466,36 +469,60 @@ } } + let getCmdsType = cmds => { + try { + JSON.stringify(cmds) + } catch (error) { + return 'illegal' + } + if (cmds.length == 0) return 'null' + if (cmds.length == 1) { + let type = cmds[0].type + if (!type) return 'key' + if (type == 'window' || cmds[0].minNum) return type + return 'professional' + } + let counts = cmds.filter(x => typeof x == 'string').length + return counts == cmds.length ? 'key' : 'professional' + } + let showCommandByType = features => { - let qcType = '', rules = features.cmds[0].match - if (features.cmds[0].type == 'regex') { - if (rules.length > 14) rules = rules.slice(0, 14) + '...'; - qcType = `
正则
${rules}
`; - } else if (features.cmds[0].type == 'window') { - qcType += `
窗口
` - if (!rules) { - qcType += `所有窗口` - } else if (rules.title || rules.class) { - qcType += `${JSON.stringify(rules).slice(0, 14) + '...'}`; - } else if (rules.app) { - rules = rules.app.join(",") - if (rules.length > 14) rules = rules.slice(0, 14) + '...'; - rules.split(',').forEach(r => { - qcType += `${r}`; - }); - } - qcType += `
` - } else if (features.cmds[0].type == 'files') { - if (rules.length > 14) rules = rules.slice(0, 14) + '...'; - qcType = `
文件
${rules}
`; + let qcType = '' + let cmds = features.cmds + let type = getCmdsType(cmds) + if (type == 'professional') { + qcType = `
专业模式
[{...}]
`; } else { - rules = features.cmds.join(",") - if (rules.length > 14) rules = rules.slice(0, 14) + '...'; - qcType += `
关键字
` - rules.split(',').forEach(r => { - qcType += `${r}`; - }); - qcType += `
` + let rules = cmds[0].match + if (type == 'regex') { + if (rules.length > 14) rules = rules.slice(0, 14) + '...'; + qcType = `
正则
${rules}
`; + } else if (type == 'window') { + qcType += `
窗口
` + if (!rules) { + qcType += `所有窗口` + } else if (rules.title || rules.class) { + qcType += `${JSON.stringify(rules).slice(0, 14) + '...'}`; + } else if (rules.app) { + rules = rules.app.join(",") + if (rules.length > 14) rules = rules.slice(0, 14) + '...'; + rules.split(',').forEach(r => { + qcType += `${r}`; + }); + } + qcType += `
` + } else if (type == 'files') { + if (rules.length > 14) rules = rules.slice(0, 14) + '...'; + qcType = `
文件
${rules}
`; + } else { + rules = features.cmds.join(",") + if (rules.length > 14) rules = rules.slice(0, 14) + '...'; + qcType += `
关键字
` + rules.split(',').forEach(r => { + qcType += `${r}`; + }); + qcType += `
` + } } return qcType } @@ -628,7 +655,8 @@ 输 出