标题: [文本处理] 批处理获取的参数,空格变成20% [打印本页]
作者: xiaodevps 时间: 2019-3-11 17:27 标题: 批处理获取的参数,空格变成20%
本帖最后由 xiaodevps 于 2019-3-11 17:39 编辑
代码
@echo on
set m=%1%
ping %m%
pause
exit
其中引用的m如果有空格的话,在某些情况下会显示 ping%20www.163.com ,正常的情况应该是 ping www.163.com ,但是某些情况下是 ping%20www.163.com 中间的空格变成了%20,请问如何解决呢?
作者: Batcher 时间: 2019-3-11 17:41
- set m=%~1
- ping %m: =%
- pause
复制代码
作者: xiaodevps 时间: 2019-3-11 20:29
谢谢,但是还是不行。
作者: Batcher 时间: 2019-3-11 21:57
回复 3# xiaodevps
请给个完整的测试用例和测试结果,我试试。
作者: xiaodevps 时间: 2019-3-12 10:13
本帖最后由 xiaodevps 于 2019-3-12 10:15 编辑
回复 xiaodevps
请给个完整的测试用例和测试结果,我试试。
Batcher 发表于 2019-3-11 21:57
先导入注册表值
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\alert]
@="URL:Alert Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\alert\DefaultIcon]
@="cmd,1"
[HKEY_CLASSES_ROOT\alert\shell]
[HKEY_CLASSES_ROOT\alert\shell\open]
[HKEY_CLASSES_ROOT\alert\shell\open\command]
@="cmd /c set m=%1 & call set m=%%m:alert:=%% & call \"d:\\123.bat\" %%m%%"
然后自己写一个html代码
<a href="alert://163.com -t" />ping test
使用谷歌浏览器与EDGE打开html获得的参数都带有 %20
作者: zaqmlp 时间: 2019-3-12 11:04
- @echo on
- title 代码可用,扫码头像,感谢赞助;有什么问题,可加QQ956535081及时沟通
- set m=%1
- setlocal enabledelayedexpansion
- set m=!m:%%20= !
- ping !m:/=!
- pause
- exit
复制代码
作者: xiaodevps 时间: 2019-3-12 11:21
zaqmlp 发表于 2019-3-12 11:04
谢谢,谷歌浏览器可用,但是edge与IE用不了。
作者: zaqmlp 时间: 2019-3-12 12:01
用其他字符代替空格,bat里再清除就是了
作者: xiaodevps 时间: 2019-3-12 12:14
本帖最后由 xiaodevps 于 2019-3-12 12:16 编辑
还有个问题,例如 ping http://163.com -t 变成了 ping http:163.com -t
中间的 // 被删除了,该如何保留呢?
作者: shousui432 时间: 2019-3-15 17:14
学习了。。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |