中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 08:32
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 还是关于替换为|的问题。。。。(版主请进) 查看 990 回复 6
楼 主 还是关于替换为|的问题。。。。(版主请进) 发表于 2008-08-08 13:23 ·  中国 新疆 克拉玛依 电信
初级用户
积分 20
发帖 7
注册 2008-02-27 10:52
18年会员
UID 111528
性别 男
状态 离线
"aaa","ccc","",,,,"aaa","",,,,
替换成:
aaa|ccc|||||aaa|||||
如何用批处理来做啊?
版主曾给我写出:
@echo off & setlocal

for /f "delims==" %%i in (IND_INFO.txt) do (
for %%k in (%%i) do for %%c in (%%~k) do set/p a=%%c^|<nul
echo.
)>>aa.txt
这样的语句来做,但这句话把N个并排的逗号,都替换成1个| ....
请帮忙解决一下 ,谢谢!
2 发表于 2008-08-08 14:05 ·  中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
@echo off
set a="aaa","ccc","",,,,"aaa","",,,,
set a=%a:,=^|%
setlocal enabledelayedexpansion
echo !a:^"=!
endlocal
pause
3 发表于 2008-08-08 14:07 ·  中国 新疆 克拉玛依 电信
初级用户
积分 20
发帖 7
注册 2008-02-27 10:52
18年会员
UID 111528
性别 男
状态 离线
Originally posted by huahua0919 at 2008-8-8 02:05 PM:
@echo off
set a="aaa","ccc","",,,,"aaa","",,,,
set a=%a:,=^|%
setlocal enabledelayedexpansion
echo !a:^"=!
endlocal
pause


这个表里面很多字段呢。而且替换出来一个新的文本。。。。

你这样写,我不知道怎么替换整个表啊。。。。。。。。。。
4 发表于 2008-08-08 14:12 ·  中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
你这样说我不知道怎么写
5 发表于 2008-08-08 14:20 ·  中国 广东 广州 番禺区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
19年会员
UID 82819
性别 男
状态 离线
哦。你是要这样?不过我保留了 "
@echo off & setlocal EnabledelayedExpansion

set a="a","b",,"cc",,,"ddd",,,,

for /l %%i in (0,1,1024) do (

set "c=!a:~%%i,1!"
if "!c!"=="" goto :output
echo !c!
if "!c!"=="," (
set b=!b!^|
) else (
set "b=!b!!c!"
)
)
:output
echo !b!

pause
知,不觉多。不知,乃求知
6 发表于 2008-08-08 15:53 ·  中国 新疆 克拉玛依 电信
初级用户
积分 20
发帖 7
注册 2008-02-27 10:52
18年会员
UID 111528
性别 男
状态 离线
Originally posted by huahua0919 at 2008-8-8 02:12 PM:
你这样说我不知道怎么写


那比如说我更新a.txt 里面的字段。。。。如何更新啊 ?????????????
7 发表于 2008-08-09 00:53 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
不行吗?

@echo off
for /f "delims=" %%i in (b.txt) do (
set str=%%i
setlocal enabledelayedexpansion
set str=!str:,=^|!
set str=!str:"=!
echo !str!
endlocal
)
pause
简单!简单!再简单!
论坛跳转: