中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 还是关于替换为|的问题。。。。(版主请进)
作者:
标题: 还是关于替换为|的问题。。。。(版主请进) 上一主题 | 下一主题
98800
初级用户




积分 20
发帖 7
注册 2008-2-27
状态 离线
『楼 主』:  还是关于替换为|的问题。。。。(版主请进)

"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个| ....
请帮忙解决一下 ,谢谢!

2008-8-8 13:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 2 楼』:  

@echo off
set a="aaa","ccc","",,,,"aaa","",,,,
set a=%a:,=^|%
setlocal enabledelayedexpansion
echo !a:^"=!
endlocal
pause

2008-8-8 14:05
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
98800
初级用户




积分 20
发帖 7
注册 2008-2-27
状态 离线
『第 3 楼』:  



  Quote:
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

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

你这样写,我不知道怎么替换整个表啊。。。。。。。。。。

2008-8-8 14:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 4 楼』:  

你这样说我不知道怎么写

2008-8-8 14:12
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 5 楼』:  

哦。你是要这样?不过我保留了 "
@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



知,不觉多。不知,乃求知
2008-8-8 14:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
98800
初级用户




积分 20
发帖 7
注册 2008-2-27
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by huahua0919 at 2008-8-8 02:12 PM:
你这样说我不知道怎么写

那比如说我更新a.txt 里面的字段。。。。如何更新啊 ?????????????

2008-8-8 15:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 7 楼』:  

不行吗?
@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




简单!简单!再简单!
2008-8-9 00:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: