merge - 我是否需要使用 WMI 才能在 VBScript 中合并文本文件?

标签 merge vbscript wmi

在搜索有关在 VBScript 中合并文本文件的提示时,我遇到了这个示例:https://gallery.technet.microsoft.com/scriptcenter/Merge-multiple-txt-files-cbe9625c

Const ForReading = 1 

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objOutputFile = objFSO.CreateTextFile("output.txt") 

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 

Set FileList = objWMIService.ExecQuery _ 
    ("ASSOCIATORS OF {Win32_Directory.Name='z:\Scripts\Test'} Where " _ 
        & "ResultClass = CIM_DataFile") 

For Each objFile In FileList 
    Set objTextFile = objFSO.OpenTextFile(objFile.Name, ForReading)  
    strText = objTextFile.ReadAll 
    objTextFile.Close 
    objOutputFile.WriteLine strText 
Next 

objOutputFile.Close

说明如下:

You can merge multiple txt files from specific folder to one txt file. It will merge all data to one txt file. You dont need to copy data manually. You can execute this script directly or from command promt. In this script you need to change the folder path from z:\Scripts\Test to your existing path where all txt files are available as well as change the name "output.txt" with your require output file name and path.

虽然我对 VBScript 还很陌生(并且已经非常非常很长一段时间没有编写 VBScript),但我不明白使用此 WMI 服务来完成如此简单的任务有什么意义(即处理同一文件夹中的文件)。

仅使用 folder.Files 然后根据需要过滤文件难道还不够吗?

感谢您的帮助。

最佳答案

您说得完全正确,使用 WMI 来完成此任务是愚蠢的。

这样就可以了,而且速度也会快很多:

Option Explicit

Dim FSO, OutputFile, File

Set FSO = CreateObject("Scripting.FileSystemObject")
Set OutputFile = FSO.CreateTextFile("output.txt")

For Each File In FSO.GetFolder("Z:\Scripts\Test").Files
    If LCase(FSO.GetExtensionName(File.Name)) = "txt" Then
        With FSO.OpenTextFile(File.Path)
            OutputFile.WriteLine .ReadAll
            .Close
        End With
    End If
Next

OutputFile.Close

关于merge - 我是否需要使用 WMI 才能在 VBScript 中合并文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56644998/

相关文章:

python - Pandas 按坐标合并

git - 如何将不活跃的 GitHub PR merge 到我自己的 fork 中?

c# - C# 中用于获取 CPU ID 和驱动器/卷序列号的 API

java - 如何识别您的屏幕设备是投影仪还是显示器

python - 使用 Python 的 ElementTree 合并 XML 文件并维护 CDATA 标签

javascript - 通过某种合并算法从数组中删除重复对象

javascript - 从 HTA 启动 VBScript 并传递变量

vbscript 通过任务计划程序在 Windows 10 中打开 excel 文件

excel - 将工作表转换为仅包含字符串的数组

amazon-ec2 - 新的 Relic Server Monitor 导致 WMI CPU 使用率高