我正在尝试将几个具有相同字段的大型 csv 文件结合起来。我能做的最好的是:
@echo off
setlocal
set first=1
for %%F in (*.csv) do (
if defined first (
type "%%F" >> new.csv
set "first="
) else (
more +1 "%%F" >> new.csv
)
)
Run Code Online (Sandbox Code Playgroud)
这对小文件很有效,但是当文件较大时,more 命令会卡在每个屏幕转储的末尾。
尽我所能,在将文件写入 new.csv 时,我无法获得更多内容来直接运行整个文件 - 任何人都可以帮忙吗?
@ECHO OFF
SET first=y
SET newfile=new.csv
for %%F in (*.csv) do IF NOT %%F==%newfile% (
if defined first (
COPY /y "%%F" %newfile% >nul
set "first="
) else (
FOR /f "skip=1delims=" %%i IN (%%F) DO >> %newfile% ECHO %%i
)
)
Run Code Online (Sandbox Code Playgroud)
编辑
要支持 CSV 中的空行,您可以将内部 FOR 替换为:
for /f "skip=1 tokens=1* delims=:" %%i in ('findstr /n "^" %%F') do >> %newfile% echo.%%j
| 归档时间: |
|
| 查看次数: |
6767 次 |
| 最近记录: |