Board logo

标题: 批处理可否进行字符运算? [打印本页]

作者: afxwzg     时间: 2007-6-6 16:31    标题: 批处理可否进行字符运算?

我知道批处理可以通过set /a进行数字运算,但好像对字符就不行,比如:
@echo off
setlocal
set temp=h
set /a temp-=a
echo %temp%
我想像c语言那样得到结果7(实际显示为0),不知道批处理可否做到?
作者: wudixin96     时间: 2007-6-6 16:53
在 SET 命令中添加了两个新命令行开关:

    SET /A expression
    SET /P variable=[promptString]

/A 命令行开关指定等号右边的字符串为被评估的数字表达式
作者: afxwzg     时间: 2007-6-6 16:57
或者不使用set /a,用其它方法能不能实现?
作者: bjsh     时间: 2007-6-6 18:35
把下面这个改造成 一个函数来 进行 call ;
把 字符转换为 对应的 ascII 值;
@echo off & setlocal enabledelayedexpansion
:change
set /a count = 65
for %%i in ( A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ) do (
        if /i "%1"=="%%i" if "%1"=="%%i" (set /a var=!count!) else (set /a var=!count!+32)
        set /a count+=1
)
echo %var%