批处理文件解析 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
为了使用我的软件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