Board logo

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

作者: 踏沙行    时间: 2018-11-7 12:32     标题: 批处理对某字符串加双引号后,再使用%~为什么脱不去外侧引号?

本帖最后由 踏沙行 于 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 调用标签时,对于参数中的引号、括号该怎么处理,才能保证原汁原味的传递过去?
如果参数不加引号,则其中的空格会将参数分拆为多个参数
如果加上引号,则使用%~后,会把原本已有的引号脱掉。

请问:怎么让原文内容不加任何修改的传递到子程序中,即使其中有引号,也不要脱去
作者: Batcher    时间: 2018-11-7 13:16

你这个代码里面第几行是用来脱引号的?
作者: 踏沙行    时间: 2018-11-7 16:32

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

回复 2# Batcher
第15行




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2