合并两个文本文件合并为一个CSV文件 [英] Merging Two Text Files into One CSV File
问题描述
我使用Windows批处理命令的工作创造文件路径,并进行处理和存档文件名(不包括分机)的列表。我需要将包含文件的路径和文件名的CSV文件。
I'm working with a windows batch command to create a list of filepaths and filenames (without the ext) for processing and archival. I need to make a CSV file that will contain the path to the file and the filename.
我能够使用DIR / A-D-S / D / S命令输出列表的文件路径,这是filelistA.txt。然后我用一个VBScript(makelistB.vbs)剥离路径和扩展,并且保存为filelistB.txt。我需要合并为行两个文件一行,把逗号分隔符之间而这也正是我需要某种形式的VBScript。
I was able to use the 'DIR /A-D-S /D /S' command to output the list with the file paths, which is filelistA.txt. Then I use a vbscript (makelistB.vbs) to strip the path and extension and save that as filelistB.txt. I need to merge the two files row for row, putting the comma separator in between and that's where I need some sort of VBscript.
filelistA.txt样子:结果
C:\\ DATA \\客户端\\冷\\ AC3060P.txt结果
C:\\ DATA \\客户端\\冷\\ AC3090P.txt结果
C:\\ DATA \\客户端\\冷\\ AC3100P.txt结果
C:\\ DATA \\客户端\\冷\\ AC3150P.txt结果
C:\\ DATA \\客户端\\冷\\ AC3200P.txt结果
C:\\ DATA \\客户端\\冷\\ AC3600P.txt结果
C:\\ DATA \\客户端\\冷\\ AC3652P.txt结果
C:\\ DATA \\客户端\\冷\\ AC5715P.txt结果
C:\\ DATA \\客户端\\冷\\ AC5720P.txt结果
C:\\ DATA \\客户端\\冷\\ AC5725P.txt结果
filelistA.txt looks like:
C:\Data\Clients\COLD\AC3060P.txt
C:\Data\Clients\COLD\AC3090P.txt
C:\Data\Clients\COLD\AC3100P.txt
C:\Data\Clients\COLD\AC3150P.txt
C:\Data\Clients\COLD\AC3200P.txt
C:\Data\Clients\COLD\AC3600P.txt
C:\Data\Clients\COLD\AC3652P.txt
C:\Data\Clients\COLD\AC5715P.txt
C:\Data\Clients\COLD\AC5720P.txt
C:\Data\Clients\COLD\AC5725P.txt
filelistB.txt样子:结果
AC3060P结果
AC3090P结果
AC3100P结果
AC3150P结果
AC3200P结果
AC3600P结果
AC3652P结果
AC5715P结果
AC5720P结果
AC5725P结果
filelistB.txt looks like:
AC3060P
AC3090P
AC3100P
AC3150P
AC3200P
AC3600P
AC3652P
AC5715P
AC5720P
AC5725P
我想打FileListCSV.txt,看起来像这样:结果
C:\\ DATA \\ CLIENTS \\ FWBT \\冷\\ AC3060P.txt,AC3060P结果
C:\\ DATA \\ CLIENTS \\ FWBT \\冷\\ AC3090P.txt,AC3090P结果
C:\\ DATA \\ CLIENTS \\ FWBT \\冷\\ AC3100P.txt,AC3100P结果
C:\\ DATA \\ CLIENTS \\ FWBT \\冷\\ AC3150P.txt,AC3150P结果
C:\\ DATA \\ CLIENTS \\ FWBT \\冷\\ AC3200P.txt,AC3200P结果
C:\\ DATA \\ CLIENTS \\ FWBT \\冷\\ AC3600P.txt,AC3600P结果
C:\\ DATA \\ CLIENTS \\ FWBT \\冷\\ AC3652P.txt,AC3652P结果
C:\\ DATA \\ CLIENTS \\ FWBT \\冷\\ AC5715P.txt,AC5715P结果
C:\\ DATA \\ CLIENTS \\ FWBT \\冷\\ AC5720P.txt,AC5720P结果
C:\\ DATA \\ CLIENTS \\ FWBT \\冷\\ AC5725P.txt,AC5725P结果
I want to make FileListCSV.txt, that looks like this:
C:\Data\Clients\FWBT\COLD\AC3060P.txt,AC3060P
C:\Data\Clients\FWBT\COLD\AC3090P.txt,AC3090P
C:\Data\Clients\FWBT\COLD\AC3100P.txt,AC3100P
C:\Data\Clients\FWBT\COLD\AC3150P.txt,AC3150P
C:\Data\Clients\FWBT\COLD\AC3200P.txt,AC3200P
C:\Data\Clients\FWBT\COLD\AC3600P.txt,AC3600P
C:\Data\Clients\FWBT\COLD\AC3652P.txt,AC3652P
C:\Data\Clients\FWBT\COLD\AC5715P.txt,AC5715P
C:\Data\Clients\FWBT\COLD\AC5720P.txt,AC5720P
C:\Data\Clients\FWBT\COLD\AC5725P.txt,AC5725P
我也开放给使用SED的窗口,如果能够做到这一切在一杆。不过,我想这应该是东西,可以在VBScript在几分钟内刮起。
I'm also open to using SED for windows if that can do all of this in one shot. However, I would imagine this should be something that can be whipped up in VBscript in a few minutes.
推荐答案
此Windows批处理文件将你想要做什么,而不需要中间的文件。
This Windows batch file will do what you want without the need for the intermediate files.
@ECHO OFF
FOR %%i IN (*.txt) DO ECHO %%~fi,%%~ni
您可以通过重定向输出这样得到这个批次的输出到一个文本文件:
You can get the output of this batch into a text file by redirecting the output like this:
MyBatch.cmd>>Output.txt
这篇关于合并两个文本文件合并为一个CSV文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!