【发布时间】:2015-03-09 16:28:09
【问题描述】:
您好,我正在寻找将目录中的所有 csv 文件合并到一个文本文件 (.txt) 的 powershell 脚本。所有 csv 文件都具有相同的标题,该标题始终存储在每个文件的第一行中。所以我需要从第一个文件中获取标题,但在其余文件中,应该跳过第一行。 我能够找到完全符合我需要的批处理文件,但我在一个目录中有 4000 多个 csv 文件,完成这项工作需要超过 45 分钟。
@echo off
ECHO Set working directory
cd /d %~dp0
Deleting existing combined file
del summary.txt
setlocal ENABLEDELAYEDEXPANSION
set cnt=1
for %%i in (*.csv) do (
if !cnt!==1 (
for /f "delims=" %%j in ('type "%%i"') do echo %%j >> summary.txt
) else (
for /f "skip=1 delims=" %%j in ('type "%%i"') do echo %%j >> summary.txt
)
set /a cnt+=1
)
有什么建议可以创建比这个批处理代码更高效的 powershell 脚本吗?
谢谢。
约翰
【问题讨论】:
标签: powershell csv batch-file