找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 31729|回复: 9

[文本处理] 批处理获取的参数,空格变成20%

[复制链接]
发表于 2019-3-11 17:27:09 | 显示全部楼层 |阅读模式
本帖最后由 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,请问如何解决呢?
发表于 2019-3-11 17:41:17 | 显示全部楼层
  1. set m=%~1
  2. ping %m: =%
  3. pause
复制代码
 楼主| 发表于 2019-3-11 20:29:00 | 显示全部楼层
谢谢,但是还是不行。
发表于 2019-3-11 21:57:41 | 显示全部楼层
回复 3# xiaodevps


    请给个完整的测试用例和测试结果,我试试。
 楼主| 发表于 2019-3-12 10:13:52 | 显示全部楼层
本帖最后由 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
发表于 2019-3-12 11:04:15 | 显示全部楼层
  1. @echo on
  2. title 代码可用,扫码头像,感谢赞助;有什么问题,可加QQ956535081及时沟通
  3. set m=%1
  4. setlocal enabledelayedexpansion
  5. set m=!m:%%20= !
  6. ping !m:/=!
  7. pause
  8. exit
复制代码
 楼主| 发表于 2019-3-12 11:21:32 | 显示全部楼层
zaqmlp 发表于 2019-3-12 11:04



   

谢谢,谷歌浏览器可用,但是edge与IE用不了。
发表于 2019-3-12 12:01:42 | 显示全部楼层
用其他字符代替空格,bat里再清除就是了
 楼主| 发表于 2019-3-12 12:14:22 | 显示全部楼层
本帖最后由 xiaodevps 于 2019-3-12 12:16 编辑

还有个问题,例如 ping  http://163.com -t    变成了  ping  http:163.com -t

中间的 // 被删除了,该如何保留呢?
发表于 2019-3-15 17:14:33 | 显示全部楼层
学习了。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 03:09 , Processed in 0.015966 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表