中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-04 19:44
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理可否进行字符运算? 查看 792 回复 3
楼 主 批处理可否进行字符运算? 发表于 2007-06-06 16:31 ·  中国 广东 深圳 电信
初级用户
积分 24
发帖 9
注册 2007-05-16 17:18
19年会员
UID 88731
性别 男
状态 离线
我知道批处理可以通过set /a进行数字运算,但好像对字符就不行,比如:
@echo off
setlocal
set temp=h
set /a temp-=a
echo %temp%
我想像c语言那样得到结果7(实际显示为0),不知道批处理可否做到?
2 发表于 2007-06-06 16:53 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
在 SET 命令中添加了两个新命令行开关:

SET /A expression
SET /P variable=

/A 命令行开关指定等号右边的字符串为被评估的数字表达式
3 发表于 2007-06-06 16:57 ·  中国 广东 深圳 电信
初级用户
积分 24
发帖 9
注册 2007-05-16 17:18
19年会员
UID 88731
性别 男
状态 离线
或者不使用set /a,用其它方法能不能实现?
4 发表于 2007-06-06 18:35 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
把下面这个改造成 一个函数来 进行 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%
论坛跳转: