|
|
发表于 2025-12-21 20:07:00
|
显示全部楼层
本帖最后由 aloha20200628 于 2025-12-21 20:35 编辑
回复 1# gbx972
字符 * 和 = 是字符串替换函数的语义字符,不能用于被替换字符,可用以下代码绕行解决...
一。纯批方法
- @echo off &setlocal &set "_s=" &set "s=*a*bcd"
- :[loop]
- set "c=%s:~,1%"
- if "%c%" neq "*" (set "_s=%_s%%c%")
- set "s=%s:~1%"
- if defined s goto[loop]
- echo,%_s%
- pause&exit/b
复制代码 二。powershell方法
- @echo off &setlocal &set "s=*a*bcd"
- for /f "delims=" %%a in ('powershell -c " '%s%'.replace('*','')" ') do set "_s=%%a"
- echo,%_s%
- pause&exit/b
复制代码 三。用纯批的 for /f 分割器处理,即将 * 字符作为字段分隔符,但须已知被分割的字段个数,故此法有限仅供参考...
- @echo off &setlocal &set "s=*a*bcd"
- for /f "tokens=1-2 delims=*" %%a in ("%s%") do set "_s=%%a%%b"
- echo,%_s%
- pause&exit/b
复制代码 |
评分
-
查看全部评分
|