You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理解析cccx自定义URL协议传入手机号适配3CX软电话求助

解决方案

你的问题核心是没有处理URL编码的特殊字符(%2b对应+、%20对应空格),同时原有替换逻辑存在冗余,修改后的完整批处理代码如下:

@echo off
setlocal enabledelayedexpansion

:: 读取传入的原始参数,自动去除外层引号
set "str=%~1"

:: 第一步移除自定义协议头cccx:
set "str=!str:cccx:=!"

:: 处理两种格式的+号:先处理URL编码的%2b,再处理明文+,统一替换为国际号码前缀00
set "str=!str:%%2b=00!"
set "str=!str:+=00!"

:: 处理两种格式的空格:URL编码的%20和明文空格,统一删除,同时删除号码里的横杠
set "str=!str:%%20=!"
set "str=!str: =!"
set "str=!str:-=!"

:: 保留原有逻辑,删除不需要的前缀0030
set "str=!str:0030=!"

:: 调用软电话执行拨号
"C:\Program Files (x86)\3CXPhone\3CXPhone.exe" dial:9!str!
endlocal

关键逻辑说明

  • 开启enabledelayedexpansion延迟变量扩展,避免特殊字符在批处理预处理阶段被转义,导致替换规则失效
  • 批处理中要匹配参数里的%符号需要写两个%进行转义,所以%%2b对应实际传入的%2b、%%20对应实际传入的%20
  • 调整替换顺序为优先处理协议头、编码字符,再处理普通符号,避免不同替换规则互相干扰
  • 移除了冗余的重复删除cccx协议头的逻辑,避免残留字符影响最终号码格式

上述代码已经覆盖你提到的两种场景:

  • 传入"%2b39+02+33919999" 输出结果为 00390233919999
  • 传入"+39%2002%2033919999" 输出结果为 00390233919999

内容的提问来源于stack exchange,提问作者Marios M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 01:12:02