批处理文件仅在打开.csv文件

时间:2018-11-27 02:12:19

标签: excel batch-file

我有一个奇怪的问题。我有一个要处理的.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
)

1 个答案:

答案 0 :(得分:1)

更改代码以直接读取文件,而不是读取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%"