[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样替换星号及向csv插入一列?

本帖最后由 snailtree 于 2011-4-1 17:07 编辑

在csv文本中,有不少*号
我的代码如下,使用^*,我的文件中的内容就被全部销毁了,求解
1)如何转义才能够替换*
2)如何向csv中复制一列并插入指定列的数据,比如,A、B、C列有数据,想把A列的数据复制并插入B列,而原B、C列后移

这个是替换内容的文本,但是csv还没有头绪,请指教,请版主最好说明下解题思路
  1. @echo off & setlocal enabledelayedexpansion
  2. for /r "e:\测试" %%f in (*.csv) do (
  3.   cd.>"%%~dpf~"
  4.   for /f "usebackq delims=" %%l in ("%%~ff") do (
  5.     (set ln=%%l)&(set ln=!ln:LV*LV/=!)&(set ln=!ln:LV*=!)&(set ln=!ln:+=;!)&(set ln=!ln:^(^=!)&(set ln=!ln:^)^=!)&(set ln=!ln:^*^=;!)
  6. (set /p=!ln!<nul)& echo.
  7.   )>>"%%~dpf~"
  8.   del /f /q "%%~ff"
  9.   cd /d "%%~dpf"
  10.   ren "%%~dpf~" "%%~nf.~cs"
  11. )
  12. for /r "E:\测试" %%f in (*) do (
  13.   cd /d "%%~dpf"
  14.   ren *.~cs *.csv
  15. )
  16. exit /b
复制代码
1

评分人数

    • batman: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 batman 于 2011-4-1 16:43 编辑

重写csv部分,楼主自己将替换和这段合起来吧:
  1. @echo off
  2. for /r e:\测试 %%a in (*.csv) do (
  3.      (for /f "usebackq tokens=1* delims=," %%b in ("%%a") do echo %%b,%%b,%%c)>"%%~dpatem"
  4.      del /q "%%a"&ren "%%~dpatem" "%%~nxa"
  5. )
复制代码
***共同提高***

TOP

本帖最后由 snailtree 于 2011-4-1 15:34 编辑

还有*号的第一个问题没有解决啊,师父

TOP

set变量替换无解,要用for按分隔符分段或者sed处理

TOP

本帖最后由 snailtree 于 2011-4-1 16:19 编辑

这样的话
看来真是要命了.....
楼上能给个例子么?

TOP

本帖最后由 batman 于 2011-4-1 16:42 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /r e:\测试 %%a in (*.csv) do (
  3.      (for /f "usebackq delims=" %%b in ("%%a") do (
  4.           set "var="&call :lp "%%b"
  5.           for /f "tokens=1* delims=," %%b in ("!var!") do echo %%b,%%b,%%c
  6.       ))>"%%~dpatem"
  7.       del /q "%%a"&ren "%%~dpatem" "%%~nxa"
  8. )
  9. goto :eof
  10. :lp
  11. if not defined str set "str=%~1"
  12. for /f "tokens=1* delims=*" %%a in ("%str%") do (
  13.      set "var=!var!;%%a"
  14.      if "%%b" neq "" set "str=%%b"&goto lp
  15. )
  16. set "var=!var:~1!"&set "str="         
复制代码
1

评分人数

***共同提高***

TOP

返回列表