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