首页 > 解决方案 > 批处理文件仅在打开 .csv 文件后运行

问题描述

我有一个奇怪的问题。我有一个要处理的 .csv 文件。该脚本运行良好,我使用一个小的 .csv 文件进行测试没有任何问题,但是当我尝试在原始 .csv (大约 100k 行,7MB)上运行批处理时,由于某种原因,该脚本仅在我打开之后运行Excel 中的文件。

除了在不打开 Excel 的情况下无法运行之外,该脚本完成得很好,所以我不太确定发生了什么。特别是因为它确实使用较小的文件自动运行。

setlocal
set "file=test2.csv"
set "fileout=output.csv"

set /p "var="<"%file%" >nul

>"%fileout%" echo.%var%,test_column

for /f "skip=1 delims=" %%a in ('type "%file%"') do (
>>%fileout% echo.%%a,test_value
)

标签: excelbatch-file

解决方案


更改代码以直接读取文件,而不是读取TYPE命令的输出。还要附上您的所有代码,以便保持文件打开以供写入。

@echo off
set "file=input.csv"
set "fileout=output.csv"

set /p "var="<"%file%"

(
echo.%var%,test_column
for /f "usebackq skip=1 delims=" %%a in ("%file%") do echo.%%a,test_value
)>"%fileout%"

推荐阅读