中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 05:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]怎样替换变量中的星号(*)? 查看 718 回复 5
楼 主 [求助]怎样替换变量中的星号(*)? 发表于 2008-07-27 17:03 ·  中国 浙江 杭州 电信
初级用户
★★
积分 192
发帖 72
注册 2005-07-31 21:10
21年会员
UID 41234
状态 离线
set var=a*b
set var1=%var:*=%
不行啊
2 发表于 2008-07-27 17:06 ·  中国 广东 广州 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
值得深思!占个位子%……】

呵呵 又写了一个偏方:
@echo off
setlocal enabledelayedexpansion
set a=#*432
set b=
for /l %%a in (0,1,5) do (
if not "!a:~%%a,1!"=="*" set b=!b!!a:~%%a,1!
)
echo !b!
pause

[ Last edited by 523066680 on 2008-7-27 at 05:14 PM ]
3 发表于 2008-07-27 17:38 ·  中国 四川 成都 联通
中级用户
★★
积分 297
发帖 135
注册 2006-10-21 12:00
19年会员
UID 67627
性别 男
状态 离线
也来一个偏方
@echo off
set var=a*b*c
call :loop "%var%"
echo %var%
pause&goto :eof

:loop
for /f "tokens=1* delims=*" %%a in ("%~1") do if not "%%b"=="" (set var=%%a%%b& call :loop "%%var%%")
4 发表于 2008-07-27 17:40 ·  中国 浙江 杭州 电信
初级用户
★★
积分 192
发帖 72
注册 2005-07-31 21:10
21年会员
UID 41234
状态 离线
谢谢两位
5 发表于 2008-07-27 18:17 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
来个简单点(不通用):

@echo off
set a=c*b
echo %a:c*=c%&pause>nul
批处理之家新域名:www.bathome.net
6 发表于 2008-07-27 19:44 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
set var=a*b
echo %var% | sed "s/\*//g"
论坛跳转: