【问题标题】:Batch file parse phone numbers批处理文件解析电话号码
【发布时间】:2021-10-05 04:23:11
【问题描述】:

为了使用我的网络电话,我注册了一个自定义 url 协议 cccx

然后将其与解析电话并将命令发送到软件电话的 .bat 文件相关联。

我使用的代码是:

set str=%1  
set str=%str:cccx:=%
set str=%str:+=00%
set str=%str:0030=%
set str=%str:-=%
set str=%str: =%

"C:\Program Files (x86)\3CXPhone\3CXPhone.exe" dial:9%str:cccx:=%

但这还不够,有些网页发送的字符不同,我无法解析。

例如,电话显示为 +39 02 33919999。

我以 str="%2b39+02+33919999" 或 str="+39%2002%2033919999" 的形式收到此信息

在这两种情况下,它都必须变为 00390233919999

我尝试了各种方法,但似乎无法正确处理。

感谢您的帮助

【问题讨论】:

    标签: batch-file cmd voip 3cx


    【解决方案1】:

    % 字符在尝试使用子字符串修改搜索替换语法时需要自行转义,这反过来又要求使用延迟扩展执行子字符串修改。

    那么处理这些案例所需要的只是简单的条件测试来确定需要哪些搜索替换操作:

    @Echo off
    
    Set "input=%~1"
    
    rem test cases: %2b39+02+33919999 +39%2002%2033919999
    rem output: 00390233919999
    
    Setlocal EnableDelayedExpansion
    
     Set "input=!input:+=!"
    
     If not "!input:2b=!" == "!input!" (
      Set "input=!input:%%2b=00!"
     )Else (
      Set "input=00!input:%%20=!"
     )
    
     Set input
     Pause
    
    

    【讨论】:

    • 好的,成功了,谢谢! "C:\Program Files (x86)\3CXPhone\3CXPhone.exe" dial:9!input!
    猜你喜欢
    • 2014-09-06
    • 2014-07-12
    • 1970-01-01
    • 2010-09-18
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    相关资源
    最近更新 更多