Cmd 从左到右连接文本文件

Cmd 从左到右连接文本文件,cmd,Cmd,我有大量的文本文件(2000),每个文件都有1MB。我想做的是以最简单的方式连接它们,然而,与已经发布的方法相反,我不想将一个附加到上一个方法的底部,我想将它附加到上一个方法的右侧(新列,选项卡) 例如,如果有两个文本文件:1个包含a,另一个包含b: 我想要 而不是 a b 谢谢 看看这是怎么回事。将文本制表符放在显示制表符的位置 这可能需要相当长的时间!源中的字符可能是一个问题 它会删除*.tmp文件,因此如果有,请将其移出文件夹 您可以使用文件夹中的六个文件进行测试 @echo off d

我有大量的文本文件(2000),每个文件都有1MB。我想做的是以最简单的方式连接它们,然而,与已经发布的方法相反,我不想将一个附加到上一个方法的底部,我想将它附加到上一个方法的右侧(新列,选项卡)

例如,如果有两个文本文件:1个包含
a
,另一个包含
b
: 我想要

而不是

a
b

谢谢

看看这是怎么回事。将文本制表符放在显示制表符的位置

这可能需要相当长的时间!源中的字符可能是一个问题

它会删除*.tmp文件,因此如果有,请将其移出文件夹

您可以使用文件夹中的六个文件进行测试

@echo off
del *.tmp 2>nul
del "outputfile.txt" 2>nul
setlocal enabledelayedexpansion
for /f "delims=" %%a in (' dir *.txt /b /on ') do (
set c=0
echo processing %%a
for /f "delims=" %%b in (' type "%%a" ') do (
set /a c=c+1
>>!c!.tmp set /p "=%%bTAB"<nul
)
)
for /L %%c in (1,1,54676) do (
if not exist %%c.tmp goto :done
echo adding file %%c of 54676
for /f "delims=" %%d in (' type "%%c.tmp" ') do (
>>"outputfile.txt" echo(%%d
)
)
:done
del *.tmp 2>nul
echo done
pause
@echo关闭
del*.tmp 2>nul
del“outputfile.txt”2>nul
延迟扩展
对于/f“delims=“%%a in('dir*.txt/b/on')do(
设置c=0
回波处理%%a
对于/f“delims=“%%b in”(“type”%%a“)do(
设置/a c=c+1
>>!c!.tmp set/p“=%%bTAB”>“outputfile.txt”回显(%%d)
)
)
:完成
del*.tmp 2>nul
回音完成
暂停

在最终文件中,每个文件的内容是否有任何特定的宽度?如果有帮助,每个文本文件有两列宽,两列之间用制表符隔开,我希望每个文本文件背对背每个文件中有多少行?每行的字段有多宽?批处理文件有限制,2000个文件每li有1个字符在最终输出文件中,ne已经是每行3000个字符。每个文件有54676行,每个单元格大约有8个字符。结果行长度对于使用变量的批处理来说太长。可能有人可以使用set/p附加到文件中。VBscript可能是更好的解决方案。感谢您的努力。我的意思是,它看起来确实有效除了速度非常慢之外,我还想做些什么。最后我在excel中编写了一个VBA脚本,一次合并500个文件(由于内存限制)然后我将合并这些文件。我基本上是这样做的:导入文本文件,计算最后一列,将下一个文本文件导入最后一列+1。再次感谢!是的,它不断写入磁盘,因此速度会很慢。如果您愿意,您可以接受答案。
@echo off
del *.tmp 2>nul
del "outputfile.txt" 2>nul
setlocal enabledelayedexpansion
for /f "delims=" %%a in (' dir *.txt /b /on ') do (
set c=0
echo processing %%a
for /f "delims=" %%b in (' type "%%a" ') do (
set /a c=c+1
>>!c!.tmp set /p "=%%bTAB"<nul
)
)
for /L %%c in (1,1,54676) do (
if not exist %%c.tmp goto :done
echo adding file %%c of 54676
for /f "delims=" %%d in (' type "%%c.tmp" ') do (
>>"outputfile.txt" echo(%%d
)
)
:done
del *.tmp 2>nul
echo done
pause