Board logo

标题: DOS需求:替换、压缩 命令一体化。。。 [打印本页]

作者: 98800     时间: 2008-8-6 12:52    标题: DOS需求:替换、压缩 命令一体化。。。
"2007/12","200711090401009","20080109000135","100010040","6",+000000000000050000.000000,+000000000000050000.000000,+000000000000000000.000000,+000000000000000000.000000,+000000000000000000.000000,+000000000000000000.000000

------------------------------------------------------------------------------------------------------
上面这些数据是从DB2数据库里面导出来的,里面有引号、逗号、以及空格,我现在需要对这些引号、逗号、以及空格 替换成 | .... 有朋友,有方法吗?

然后对这些.txt文件进行压缩。。。。。

谢谢!!!

作者: huahua0919     时间: 2008-8-6 13:02

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (cc.txt) do (
set a=%%i
set a=!a:"=|!
set a=!a:,=^|!
set a=!a: =^|!
echo !a!>cc.txt
)
pause


Last edited by huahua0919 on 2008-8-6 at 01:26 PM ]

作者: 98800     时间: 2008-8-6 13:07
替换了,但是只是显示在DOS屏幕上,我想直接替换到cc.txt里面去?

如何写呢?

作者: huahua0919     时间: 2008-8-6 13:07
这个我就不知道了

作者: slore     时间: 2008-8-6 13:23

@echo off&setlocal enabledelayedexpansion
(for /f "delims=" %%i in (cc.txt) do (
set a=%%i
set a=!a:"=|!
set a=!a:,=^|!
set a=!a: =^|!
echo !a!
))>ss.txt
del cc.txt
ren ss.txt cc.txt
pause

作者: huahua0919     时间: 2008-8-6 13:27
编辑过了。你再尝试,这是最基本的,你还问啊

作者: HAT     时间: 2008-8-6 13:29
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
set a=%%i
set a=!a:"=|!
set a=!a:,=^|!
set a=!a: =^|!
>b.txt echo !a!
)
move /y b.txt a.txt

作者: 98800     时间: 2008-8-6 13:38
"701600125101000000000001 ","01600101251010000000000017 ","01 ","1","0","0"
"0160010000000043 ","01600101211010000000000025 ","01 ","1","0","0"
"0180020000000013 ","0180020121101000018002010000000 ","01 ","1","0","0"


----------------------------------------------------------------------------------------------
替换成:
701600125101000000000001|01600101251010000000000017|01|1|0|0|
0160010000000043|01600101211010000000000025|01|1|0|0|
0180020000000013|0180020121101000018002010000000|01|1|0|0|

条件是:
1、"," 替换成 |
2、第一个引号不替换,但最后一个引号要替换。。。。。

谢谢 !!!!!!!!!!!!!!!!!!

作者: lxmxn     时间: 2008-8-6 22:51
@echo off & setlocal

for /f "delims==" %%i in (your_file.txt) do (
for %%k in (%%i) do for %%c in (%%~k) do set/p a=%%c^|<nul
echo.
)

作者: pusofalse     时间: 2008-8-6 23:24
版主高明。。

作者: HAT     时间: 2008-8-7 01:36
sed "s//\|/g" a.txt | sed "s/.//1" | tr -s "|"


sed.exe
tr.exe
http://unxutils.sourceforge.net/