标题: [文本处理] 批处理对某字符串加双引号后,再使用%~为什么脱不去外侧引号? [打印本页]
作者: 踏沙行 时间: 2018-11-7 12:32 标题: 批处理对某字符串加双引号后,再使用%~为什么脱不去外侧引号?
本帖最后由 踏沙行 于 2018-11-7 16:43 编辑
- @echo off
- echo,H:\2.txt内容为:
- type H:\2.txt
- echo,
- echo,==========
- for /f "tokens=*" %%a in (H:\2.txt) do (
- echo,原型=%%a
- echo,还原="%%~a"
- call :lp "%%~a"
- echo,---------
- )
- pause
-
- :lp
- echo;形参=%~1
- goto:eof
复制代码
结果为:- H:\2.txt内容为:
- "Hello1 and hello2"
- World1 and world2
- ==========
- 原型="Hello1 and hello2"
- 还原="Hello1 and hello2"
- 形参=Hello1 and hello2
- ---------
- 原型=World1 and world2
- 还原="World1 and world2"
- 形参=World1 and world2
- ---------
- 请按任意键继续. . .
复制代码
【问题】
通过call 调用标签时,对于参数中的引号、括号该怎么处理,才能保证原汁原味的传递过去?
如果参数不加引号,则其中的空格会将参数分拆为多个参数
如果加上引号,则使用%~后,会把原本已有的引号脱掉。
请问:怎么让原文内容不加任何修改的传递到子程序中,即使其中有引号,也不要脱去
作者: Batcher 时间: 2018-11-7 13:16
你这个代码里面第几行是用来脱引号的?
作者: 踏沙行 时间: 2018-11-7 16:32
本帖最后由 踏沙行 于 2018-11-7 16:41 编辑
回复 2# Batcher
第15行
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |