批处理文件解析 phone 个数字

Batch file parse phone numbers

为了使用我的软件phone我已经注册了一个自定义的url协议,cccx

然后将其与解析 phone 并将命令发送到软件 phone 的 .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)CXPhoneCXPhone.exe" dial:9%str:cccx:=%

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

例如phone显示为+39 02 33919999.

我收到的是 str="%2b39+02+33919999" 或 str="+39%2002%2033919999"

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

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

感谢您的帮助

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

然后,处理所呈现的案例所需要做的就是简单的条件测试,以确定需要哪些搜索替换操作:

@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