![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 14:16 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 【超级question】关于变量替换的星号 |
| 可打印版本 1,225 / 10 |
| 第1楼 NeverAgain | 发表于 2009-05-14 08:56 |
| 初级用户 发帖 40 积分 67 | |
|
【超级question】关于变量替换的星号 大家都知道
会将变量str中从左端开始到第一次出现":"的一段字符替换为空然后再显示 比如 将显示 可是问题来了,我现在要替换下面字符串(假定该字符串很长,含有的星号较多)里的星号为空格: 那么怎么办? 我试了下用set %str:str1=str2% 这种方法遇到障碍,echo %str:*= %是行不通的! 若用for /f "delims=*" ... 或者其他做法繁琐, 我现在想到用转义字符^去转义*,然后用set %str:str1=str2%的方法(因为这样简洁,一行就搞定了!) 麻烦各位大虾指点迷津 [ Last edited by NeverAgain on 2009-5-14 at 08:58 ] |
|
| 第2楼 netbenton | 发表于 2009-05-14 09:52 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
::把*号换为dir
@echo off&setlocal enabledelayedexpansion set *=dir set str=ab*c*d*A。*。*。R**T.《》*、*/*\*?.***.tt1254*5...too long! :lp if "!str:~%n%,1!" equ "" goto :ok if "!str:~%n%,1!" equ "*" (set de=!de!!*!) else (set de=!de!!str:~%n%,1!) set/a n+=1 goto :lp :ok echo !de! pause |
|
| 第3楼 NeverAgain | 发表于 2009-05-14 10:35 |
| 初级用户 发帖 40 积分 67 | |
|
不错,看来是高手,很感谢!!
但离我的期望还差。。。 有没有简洁点的? |
|
| 第4楼 yishanju | 发表于 2009-05-14 15:59 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
echo ab*c*d*A。*。*。R**T.《》*、*/*\*?.***.tt1254*5...too long!|fr -f:"*" -t:" "
FR 下载 http://baiy.cn/utils/fr/index.htm |
|
| 第5楼 NeverAgain | 发表于 2009-05-17 04:15 |
| 初级用户 发帖 40 积分 67 | |
Originally posted by yishanju at 2009-5-14 03:59 PM: thank you for your reply, but i want to get answer about pure batch scripts. |
|
| 第6楼 everest79 | 发表于 2009-05-17 07:41 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
在这里转义无效,因为find的参数*就是当作字符来处理的,而转义的作用就是把控制符或特征符转换成字符
也就是说*号无法直接替换 要理解变量的存放方式 set b=^^^^* echo %b:^^^*% |
|
| 第7楼 plp626 | 发表于 2009-09-19 02:30 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
好问题!
就是我也不知道怎么直接替换。。。。 |
|
| 第8楼 523066680 | 发表于 2009-09-19 05:22 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
怎么这种事情一定要批处理去做,真是的……
|
|
| 第9楼 523066680 | 发表于 2009-09-19 06:56 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
好像是气不过,一定想做一个可以的。
我觉得花上这么多时间弄 真不值得。偏要取其短。 vbs的 [ Last edited by 523066680 on 2009-9-19 at 07:06 ] |
|
| 第10楼 plp626 | 发表于 2009-09-19 12:27 |
| 银牌会员 发帖 1,020 积分 2,278 | |
Originally posted by 523066680 at 2009-9-19 05:22 AM: 这个*替换问题对数学表达式处理极为有用,你思考过没? http://bbs.bathome.cn/viewthread.php?tid=4699 |
|
| 第11楼 523066680 | 发表于 2009-09-19 21:34 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
原来~ 如此~
这个根我强调不建议用批处理做有啥关系,你看我自己还写了呢。 [ Last edited by 523066680 on 2009-9-19 at 22:08 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |