Board logo

标题: [文本处理] 求助 批量 在csv中 加入文件名 一列 但表头(即列的名称) 单独给出 [打印本页]

作者: 猫不改吃小鱼干    时间: 2017-2-20 16:31     标题: 求助 批量 在csv中 加入文件名 一列 但表头(即列的名称) 单独给出

  1. @echo off
  2. cd /d "%~dp0"
  3. md "$结果\" 2>nul
  4. for %%a in ("%cd%") do set "fd=%%~nxa"
  5. for /f "delims=" %%a in ('dir /a-d/b *.csv') do (
  6.     (for /f "delims=" %%b in ('type "%%a"') do (
  7.         echo;%fd%,%%~na,%%b
  8.     ))>"$结果\%%a"
  9. )
  10. pause
复制代码
如题我已经查询了如何批量将文件名加入到csv 文件的第一列
但是有一个问题这一列的第一行也就是表头会变成文件名
如何实现 表头 (第一行)为“文件来源” 单独给出呢
作者: GNU    时间: 2017-2-20 20:37

请举个例子说明一下
作者: 猫不改吃小鱼干    时间: 2017-2-21 14:39

回复 2# GNU


  比如原来 csv   是
A B C
1 2 3
2 3 4

运行上面的批处理后,
能够将文件名加进去

比如文件名是 wjm

那么得到的是
wjm A B C
wjm 1 2 3
wjm 2 3 4

但是我不想在第一行加入wjm 比如我想要是“文件名”
即得到
文件名 A B C
wjm 1 2 3
wjm 2 3 4
要怎么实现呢
作者: taofan712    时间: 2017-2-21 16:00

  1. @echo off
  2. cd /d "%~dp0"
  3. md "$结果\" 2>nul
  4. for %%a in ("%cd%") do set "fd=%%~nxa"
  5. for /f "delims=" %%a in ('dir /a-d/b *.csv') do (
  6.     echo;文件名    A    B     C >"$结果\%%a"
  7.     (for /f "delims=" %%b in ('type "%%a"') do (
  8.         echo;%fd%,%%~na,%%b
  9.     ))>>"$结果\%%a"
  10. )
  11. pause
复制代码

作者: 猫不改吃小鱼干    时间: 2017-3-3 23:00

回复 4# taofan712
非常感谢
  1. @echo off
  2. cd /d "%~dp0"
  3. md "$结果\" 2>nul
  4. for %%a in ("%cd%") do set "fd=%%~nxa"
  5. for /f "delims=" %%a in ('dir /a-d/b *.csv') do (
  6.     echo;"文件名" , A  , B  , C >"$结果\%%a"
  7.     (for /f "delims=" %%b in ('type "%%a"') do (
  8.         echo;%fd%,%%~na,%%b
  9.     ))>>"$结果\%%a"
  10. )
  11. pause
复制代码
ABC 标题加了逗号分隔才能把表头分列 还是很感谢!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2