有多个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.txt;
2)输入 DIR *.*/B>LIST.TXT
注:DIR为函数;
* .* 是通配符,第一个*是文件名,第二个*是文件格式(此处可以根据需求进行类型筛选改为.pdf等), /B是使用空格式, LIST.TXT是生成的文件类型和名字(也可输出LIST.csv)
3)将a.txt另外命名为a.bat;
4)点击a.bat,闪过一个命令窗口生成一个list.txt文件,所有文件名均在其中。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!