Board logo

标题: 还是关于替换为|的问题。。。。(版主请进) [打印本页]

作者: 98800     时间: 2008-8-8 13:23    标题: 还是关于替换为|的问题。。。。(版主请进)

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

作者: huahua0919     时间: 2008-8-8 14:05
@echo off set a="aaa","ccc","",,,,"aaa","",,,, set a=%a:,=^|% setlocal enabledelayedexpansion echo !a:^"=! endlocal pause

作者: 98800     时间: 2008-8-8 14:07
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
这个表里面很多字段呢。而且替换出来一个新的文本。。。。 你这样写,我不知道怎么替换整个表啊。。。。。。。。。。

作者: huahua0919     时间: 2008-8-8 14:12
你这样说我不知道怎么写

作者: flyinspace     时间: 2008-8-8 14:20
哦。你是要这样?不过我保留了 " @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

作者: 98800     时间: 2008-8-8 15:53
Originally posted by huahua0919 at 2008-8-8 02:12 PM: 你这样说我不知道怎么写
那比如说我更新a.txt 里面的字段。。。。如何更新啊 ?????????????

作者: terse     时间: 2008-8-9 00:53
不行吗?
@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