bat获取文件夹下所有的csv文件名及文件的首行

有多个csv文件 用批处理 提取文件名及首行内容 到新的csv 文件名要和内容首行对应

set f=createobject("scripting.filesystemobject")
s=""
csvpath="C:\Users\showbo\Desktop\"'csv文件路径

set files=f.GetFolder(csvpath&file).Files
for each file in files
  if instr(file.name,".csv")<>0 then
     set t=f.OpenTextFile(csvpath&file.name)
     text=t.readall()
     arr=split(text,chr(10))
     s=s&csvpath&file.name&chr(10)& arr(0)&chr(10)
     t.close()
     set t=nothing
  end if
next
set files=nothing

'内容写入到result.csv文件中
set csv=f.OpenTextFile(csvpath&"result.csv",8,True)
csv.write s
csv.close()
set csv=nothing

set f=nothing

msgbox "操作成功"

for x in `find -type f`; do sed -n "1{s,.*,${x##*/}\t&,p}" $x; done > output.csv

for x in `find -type f`; do sed -n "1{s/.*/${x##*/},&/p}" $x; done > output.csv

for x in `find -type f`; do sed -n "1{s/.*/${x:2},&/p}" $x; done > output.csv

另外这个实例的思路我觉得可以借鉴,链接:https://www.cnblogs.com/JoePotter/p/16863370.html

@echo off 
setlocal EnableDelayedExpansion
cd /d "%~dp0"
for %%i in (*.csv) do (
echo %%i>>new.txt
set filepath="%%i"
call :sub
)
ren new.txt new.csv
exit

:sub
for /f "delims=" %%a in ('type !filepath!') do echo %%a>>new.txt&&goto :eof
goto :eof

1)在所在的文件夹内新建一个a.txt2)输入  DIR  *.*/B>LIST.TXT
注:DIR为函数;
       * .* 是通配符,第一个*是文件名,第二个*是文件格式(此处可以根据需求进行类型筛选改为.pdf等), /B是使用空格式, LIST.TXT是生成的文件类型和名字(也可输出LIST.csv3)将a.txt另外命名为a.bat;
4)点击a.bat,闪过一个命令窗口生成一个list.txt文件,所有文件名均在其中。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632