Board logo

标题: 关于大小写转换的问题??? [打印本页]

作者: sunyao     时间: 2006-12-19 05:14    标题: 关于大小写转换的问题???

系统是2k
set /p con="是否继续(Y/N):"

set con=%con:y=Y%
set con=%con:n=N%

if   %con%==Y  goto continue
if   %con%==N  goto out
写在cmd脚本中程序执行中echo %con%
发现con此时为y=Y
也就是说con现在等于表达式y=Y
那么if判断时就变成 if  y=Y==Y  goto continue
可是这句话在2003中报语法错误  不知道为什么
另外set con=%con:y=Y%在命令行中执行后
echo %con%  此时con就等于Y
为什么命令行中和脚本中的命令执行不一样呢
作者: redtek     时间: 2006-12-19 12:17

IF /I  [%CON%]==[Y]  ……
if /i 参数可以不分大写或是小写来判断~:)
作者: sunyao     时间: 2006-12-19 22:22
那set con=%con:y=Y%这句话
写在cmd脚本中程序中
con怎么为y=Y呢  不清楚
作者: sunyao     时间: 2006-12-19 22:43
另外2003
if  /i  %con%==Y  goto continue
还是报错
作者: redtek     时间: 2006-12-19 23:24
为了防止空变量或是意外的符号产生的冲突,一定要
IF /I  [%CON%]==[Y]
把比对的变量一定要用什么符号,象上面的 " [ .. ] " 中括号给括起来,让 if 读得清清晰晰,好的结构代码出错的情况就小一些~:)

if /i 参数已经可以不分大小写了,所以 set con=%con:y=Y% 这句就可以不再写上了~:)


如果不喜欢用等号判断,则 if 还提供了如下方式:
    EQU - 等于
    NEQ - 不等于
    LSS - 小于
    LEQ - 小于或等于
    GTR - 大于
    GEQ - 大于或等于
[ Last edited by redtek on 2006-12-19 at 10:25 AM ]
作者: sunyao     时间: 2006-12-19 23:30
明白 谢谢redtek
作者: mackyliu     时间: 2006-12-20 00:50
不错,学习了.