[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理对某字符串加双引号后,再使用%~为什么脱不去外侧引号?

本帖最后由 踏沙行 于 2018-11-7 16:43 编辑
  1. @echo off
  2. echo,H:\2.txt内容为:
  3. type H:\2.txt
  4. echo,
  5. echo,==========
  6. for /f "tokens=*" %%a in (H:\2.txt) do (
  7. echo,原型=%%a
  8. echo,还原="%%~a"
  9. call :lp "%%~a"
  10. echo,---------
  11. )
  12. pause
  13. :lp
  14. echo;形参=%~1
  15. goto:eof
复制代码
结果为:
  1. H:\2.txt内容为:
  2. "Hello1 and hello2"
  3. World1 and world2
  4. ==========
  5. 原型="Hello1 and hello2"
  6. 还原="Hello1 and hello2"
  7. 形参=Hello1 and hello2
  8. ---------
  9. 原型=World1 and world2
  10. 还原="World1 and world2"
  11. 形参=World1 and world2
  12. ---------
  13. 请按任意键继续. . .
复制代码
【问题】
通过call 调用标签时,对于参数中的引号、括号该怎么处理,才能保证原汁原味的传递过去?
如果参数不加引号,则其中的空格会将参数分拆为多个参数
如果加上引号,则使用%~后,会把原本已有的引号脱掉。

请问:怎么让原文内容不加任何修改的传递到子程序中,即使其中有引号,也不要脱去

本帖最后由 踏沙行 于 2018-11-7 16:41 编辑

回复 2# Batcher
第15行

TOP

你这个代码里面第几行是用来脱引号的?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表