标题: [文本处理] [已解决]批处理怎样替换星号及向csv插入一列? [打印本页]
作者: snailtree 时间: 2011-4-1 11:41 标题: [已解决]批处理怎样替换星号及向csv插入一列?
本帖最后由 snailtree 于 2011-4-1 17:07 编辑
在csv文本中,有不少*号
我的代码如下,使用^*,我的文件中的内容就被全部销毁了,求解
1)如何转义才能够替换*
2)如何向csv中复制一列并插入指定列的数据,比如,A、B、C列有数据,想把A列的数据复制并插入B列,而原B、C列后移
这个是替换内容的文本,但是csv还没有头绪,请指教,请版主最好说明下解题思路- @echo off & setlocal enabledelayedexpansion
- for /r "e:\测试" %%f in (*.csv) do (
- cd.>"%%~dpf~"
- for /f "usebackq delims=" %%l in ("%%~ff") do (
- (set ln=%%l)&(set ln=!ln:LV*LV/=!)&(set ln=!ln:LV*=!)&(set ln=!ln:+=;!)&(set ln=!ln:^(^=!)&(set ln=!ln:^)^=!)&(set ln=!ln:^*^=;!)
- (set /p=!ln!<nul)& echo.
- )>>"%%~dpf~"
- del /f /q "%%~ff"
- cd /d "%%~dpf"
- ren "%%~dpf~" "%%~nf.~cs"
- )
- for /r "E:\测试" %%f in (*) do (
- cd /d "%%~dpf"
- ren *.~cs *.csv
- )
- exit /b
复制代码
作者: batman 时间: 2011-4-1 14:53
本帖最后由 batman 于 2011-4-1 16:43 编辑
重写csv部分,楼主自己将替换和这段合起来吧:- @echo off
- for /r e:\测试 %%a in (*.csv) do (
- (for /f "usebackq tokens=1* delims=," %%b in ("%%a") do echo %%b,%%b,%%c)>"%%~dpatem"
- del /q "%%a"&ren "%%~dpatem" "%%~nxa"
- )
复制代码
作者: snailtree 时间: 2011-4-1 15:02
本帖最后由 snailtree 于 2011-4-1 15:34 编辑
还有*号的第一个问题没有解决啊,师父
作者: CrLf 时间: 2011-4-1 16:15
set变量替换无解,要用for按分隔符分段或者sed处理
作者: snailtree 时间: 2011-4-1 16:17
本帖最后由 snailtree 于 2011-4-1 16:19 编辑
这样的话
看来真是要命了.....
楼上能给个例子么?
作者: batman 时间: 2011-4-1 16:33
本帖最后由 batman 于 2011-4-1 16:42 编辑
- @echo off&setlocal enabledelayedexpansion
- for /r e:\测试 %%a in (*.csv) do (
- (for /f "usebackq delims=" %%b in ("%%a") do (
- set "var="&call :lp "%%b"
- for /f "tokens=1* delims=," %%b in ("!var!") do echo %%b,%%b,%%c
- ))>"%%~dpatem"
- del /q "%%a"&ren "%%~dpatem" "%%~nxa"
- )
- goto :eof
- :lp
- if not defined str set "str=%~1"
- for /f "tokens=1* delims=*" %%a in ("%str%") do (
- set "var=!var!;%%a"
- if "%%b" neq "" set "str=%%b"&goto lp
- )
- set "var=!var:~1!"&set "str="
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |