File VBS:合并名称几乎相等的文件

File VBS:合并名称几乎相等的文件,file,vbscript,merge,text-files,File,Vbscript,Merge,Text Files,我在文件夹中有数百个几乎相同名称的文件,如1560q90j-a.txt和1560q90j-b.txt。这些文件是临时(随机)生成的。 如何在给定文件夹中合并这些文件,这些文件的开头有相同的九个字符,后面有一个与新文件不同的字符。同时删除源文件: Commandline: copy 1560q90j-a.txt+1560q90j-b.txt 1560q90j.txt Commandline: del 1560q90j-?.txt Commandline: copy atiy09hr-a.tx


我在文件夹中有数百个几乎相同名称的文件,如1560q90j-a.txt和1560q90j-b.txt。这些文件是临时(随机)生成的。
如何在给定文件夹中合并这些文件,这些文件的开头有相同的九个字符,后面有一个与新文件不同的字符。同时删除源文件:

 Commandline: copy 1560q90j-a.txt+1560q90j-b.txt 1560q90j.txt
 Commandline: del 1560q90j-?.txt
 Commandline: copy atiy09hr-a.txt+atiy09hr-a.txt atiy09hr.txt
 Commandline: del atiy09hr-?.txt
稍后,我将把所有新文件合并到一个文件中,其中一个空行作为文件内容之间的分隔符:

 Commandline: copy 560q90j.txt+blankline.txt+atiy09hr.txt+blankline.txt+ ... Allfile.txt
也许有人能帮我用VBS编写一个脚本来实现我的愿望

谢谢!米奇

这应该可以做到:

Const ForReading = 1
Const ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")

objStartFolder = "C:\temp\test\" 'the folder where your text files are

Set objFolder = objFSO.GetFolder(objStartFolder)

Set colFiles = objFolder.Files
For Each objFile in colFiles
        Set writefile = objFSO.OpenTextFile("C:\Temp\" & Left(objFile.Name, 8) & ".txt", ForAppending, True)'open output file based on first 8 letters of found file
        set readfile = objFSO.OpenTextFile(objStartFolder & objFile.Name, ForReading, False) 'open found file
        contents = readfile.ReadAll  'read its content
        writefile.WriteLine(contents)  'append to output file
        readfile.close  'close file
        writefile.Close()
        objFSO.DeleteFile(objStartFolder & objFile.Name) 'delete file
Next

谢谢,第一部分效果很好。 对于第二部分,我将采用以下脚本:

常数ForReading=1
设置objFSO=CreateObject(“Scripting.FileSystemObject”)
在CurrenDirectory中设置objOutputFile=objFSO.CreateTextFile(“output.txt”)”
strComputer=“.”此计算机
设置objWMIService=GetObject(“winmgmts:\\”&strComputer&“\root\cimv2”)
Set FileList=objWMIService.ExecQuery_
({Win32_Directory.Name='C:\Temp'}Where的关联程序)_
&“ResultClass=CIM_数据文件”)
对于文件列表中的每个objFile
设置objTextFile=objFSO.OpenTextFile(objFile.Name,ForReading)
strText=objTextFile.ReadAll
objTextFile.Close
objOutputFile.WriteLine strText和vbcrlf
下一个
objOutputFile.Close


再次感谢你和情人节的问候