标题: [文本处理] 批处理 for 语句中的双引号问题 [打印本页]
作者: Bat_s 时间: 2015-1-25 11:42 标题: 批处理 for 语句中的双引号问题
================- @echo off
- set a=123"sdf"
- echo %a%
- pause
复制代码
正常显示123"sdf"
一对双引号改为一个可成功显示- @echo off
- set a=123"sdf
- echo %a%
- pause
- 正常显示123"sdf
复制代码
===============- @echo off
- for %%i in (123"sdf") do echo %%i
- pause
复制代码
======
正常显示 123"sdf"
问题出现在下边:
======- @echo off
- set a=123"sdf
- for %%i in (%a%) do echo %%i
- pause
复制代码
窗口一闪即没,不能正确显示%a%的值
个人理解,双引号是不是不能 在FOR语句中单独出现,而在SET 语句可以随便付值,可以FOR语句中双引号必须成对默认成字符,
不知道这样的理解对不???
=============
上述三个例句的的引号只变为一个
作者: pcl_test 时间: 2015-1-25 12:07
回复 1# Bat_s
这有两个列子,你试试- @echo off
- for %%i in (123^"sdf) do echo %%i
- pause
复制代码
- @echo off
- set a=''123!"sdf"@#$^&*()%
- echo %a%
- pause
复制代码
作者: Bat_s 时间: 2015-1-25 14:39
本帖最后由 Bat_s 于 2015-1-25 14:40 编辑
谢谢楼上,第一个FOR语句加上转义字符^是可以成功的。
每二个SET语句要加一对引号才可以
set "a=''123!"sdf"@#$^&*()%"
综上得出的结果就是:
在FOR语句中的(SET)set集中引号要成对出现,如果不成对要在引号前加上转义字符^
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |