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


  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

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

你这样写,我不知道怎么替换整个表啊。。。。。。。。。。
作者: 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


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