Board logo

标题: [文本处理] [已解决]批处理中为什么要用4个尖号? [打印本页]

作者: whntk    时间: 2011-3-9 11:51     标题: [已解决]批处理中为什么要用4个尖号?

情况是这样的,我的目的就是要在dirconfig.ini中加入引号里面这句“gf=!gf!    ;请输入游戏路径,注意:如果路径中有空格,请在空格前加^。
代码如下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p gf=
  4. echo gf=!gf!    ;请输入游戏路径,注意:如果路径中有空格,请在空格前加^^^^。>dirconfig.ini
复制代码
如果我把
echo gf=!gf!    ;请输入游戏路径,注意:如果路径中有空格,请在空格前加^^^^。>dirconfig.ini”改为“echo gf=!gf!    ;请输入游戏路径,注意:如果路径中有空格,请在空格前加^^。>dirconfig.ini
则dirconfig.ini中的内容为:“gf=    ;请输入游戏路径,注意:如果路径中有空格,请在空格前加。
也就是说并没有达到我的目的。
我就是想问下,为什么在脚本中“^^^^”能获得我需要的效果,“^^”则不能?
作者: batman    时间: 2011-3-9 12:26

请问楼主能看懂你自己在说些什么吗?
作者: wc726842270    时间: 2011-3-9 12:43

还是把完整代码拿出来,解决的可能会更好
作者: batman    时间: 2011-3-9 13:22

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p gf=
  3. set "str=gf=!gf!    ;请输入游戏路径,注意:如果路径中有空格,请在空格前加^^。"
  4. echo !str!>a.txt
  5. start a.txt
复制代码

[ 本帖最后由 batman 于 2011-3-9 13:23 编辑 ]
作者: whntk    时间: 2011-3-9 13:42

谢谢版主的回复,可惜的答非所问。
作者: CrLf    时间: 2011-3-9 14:28

楼主的代码只是写入到dirconfig.ini,压根没说你所谓“我需要的效果”是怎么回事,谁知道你引用dirconfig.ini的时候是什么情况
作者: batman    时间: 2011-3-9 14:38     标题: 回复 5楼 的帖子

你仔细看看,是不是答非所问?
作者: wc726842270    时间: 2011-3-9 15:07     标题: 回复 6楼 的帖子

应该是显示一个转义字符吧,但是不明白的是版主的代码已经达到了目的啊。我所使用的系统是XP SP2的
作者: whntk    时间: 2011-3-9 15:13

代码确实已经达到目的了,但是代码里面需要4个^,理论两个就可以解决问题。所以疑惑的是问题解决的这么奇怪。
作者: wc726842270    时间: 2011-3-9 15:31

看看这个吧
  1. @echo off
  2. set /p gf=
  3. echo gf=%gf%    ;请输入游戏路径,注意:如果路径中有空格,请在空格前加^^.>dirconfig.INI
  4. pause
复制代码
这里不用延时
作者: CrLf    时间: 2011-3-9 15:32

划分语块时进行一次预处理,^^^^变成^^,实际执行echo时因为有!所以进行第二次预处理^^变成^

[ 本帖最后由 zm900612 于 2011-3-9 15:33 编辑 ]
作者: wc726842270    时间: 2011-3-9 15:33     标题: 回复 11楼 的帖子

非常对,类似于二次扩展
作者: whntk    时间: 2011-3-9 15:35

感谢zm900612,问题解决。




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