2017-02-22 90 views
1

我有一个文本文件,我需要先删除第一行数据。我有一个批处理脚本,可以为我做这件事,但由于某种原因,它会在每行数据的末尾添加一个空格。xcopy文本文件为数据添加空间 - CMD批处理文件

经过多次循环后,这会使数据文件大大增加(10k +行数据在每个xcopy中获得一个空间),我试图找出必须复制数据行,而不在最后增加额外空间。

这里是我的脚本:

for /f "skip=1 delims=*" %%a in (C:\Users\User1\Documents\DataSources\AccountData.csv) do (
    echo %%a >>C:\Users\User1\Documents\DataSources\newfile.txt  
) 

xcopy C:\Users\User1\Documents\DataSources\newfile.txt C:\Users\User\Documents\DataSources\AccountData.csv /y 

del C:\Users\User1\Documents\iMacros\DataSources\newfile.txt /f /q 

有什么建议?谢谢一堆!

克里斯

+2

如果你删除%%和>>操作符之间的空间? – dlatikay

+0

@dlatikay,是正确的。你在物理上回应文件的空间。下面的答案是哪个组合已经得到纠正。 – Squashman

回答

1

快速的方法是将其改为:

for /f "skip=1 delims=*" %%a in (C:\Users\User1\Documents\DataSources\AccountData.csv) do (
    (echo %%a)>>C:\Users\User1\Documents\DataSources\newfile.txt  
) 

xcopy C:\Users\User1\Documents\DataSources\newfile.txt C:\Users\User\Documents\DataSources\AccountData.csv /y 

del C:\Users\User1\Documents\iMacros\DataSources\newfile.txt /f /q 
+1

是的。可能值得添加一行或两行,这是为什么这会影响 – dlatikay

+0

@dlatikay,因为只是删除%% a和>>操作符之间的空格不是解决方案。 – Compo

+1

@dlatikay,从理论上消除空间确实解决了这个问题,但涉及到一个问题。如果数据以数字结尾,批处理文件会认为您正在重定向到不同的文件流。因此,要解决该问题,请将该命令放在括号内。 – Squashman