如何使用vbscript打开,追加,删除追加和关闭一个word rtf文件列表



我有一些代码打开,附加一些文本,删除说的文本,然后保存和关闭一个rtf文档文件与vbscript。下面是代码:

Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Open("C:boxtest.rtf")
Set objSelection = objWord.Selection
objSelection.Font.Size = "10"
objSelection.InsertAfter Text:="Hello"
objSelection.Delete
objDoc.SaveAs ("C:boxtest.rtf")
objWord.Quit

但是,我需要对一个文件列表执行此操作,因此我认为必须使用a FileSysObject:

Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FolderExists(strDirectory) Then
    Set objFolder = objFSO.GetFolder(strDirectory)
' Check that the strDirectory folder exists
If objFSO.FolderExists(strDirectory) Then
Set objFolder = objFSO.GetFolder(strDirectory)
If objFSO.FileExists(strDirectory & strFile) Then
    Set objFolder = objFSO.GetFolder(strDirectory)
    For Each objFile In objFolder.Files
        Set objTextFile = objFSO.OpenTextFile _
        (strDirectory & strFile, ForAppending, True)
        ' Writes strText every time you run this VBScript
        objTextFile.WriteLine (strText)
        'objTextFile.WriteLine (strBlankText)
        objTextFile.Close
    Next

等等……请记住,我省略了一些初始化变量代码。

是否有一种方法可以结合这两种方法来解决问题,这样我就可以对文件进行操作,并且仍然循环遍历所有文件,或者我这样做是错误的?

对此有什么想法吗?

是的,您可以合并这两种方法-只需将Word代码移动到循环中,并确保在迭代结束时关闭活动文档。我添加了一个if来检查当前文件的文件扩展名,以确保Word打开正确的文件类型。还有一点要更改输出文件的名称,这样您就不会覆盖

Set objWord = CreateObject("Word.Application")
objWord.Visible = True
For Each objFile In objFolder.Files
    if objFSO.GetExtensionName(objFile.path) = "rtf" then
        Set objDoc = objWord.Documents.Open(objFile.path)
        Set objSelection = objWord.Selection
        objSelection.Font.Size = "10"
        objSelection.InsertAfter Text:="Hello"
        objSelection.Delete
        objDoc.SaveAs objFSO.BuildPath("C:box", objFSO.GetBaseName(objFile.path) & "-test.rtf")
        objDoc.Close
    end if
Next
objWord.Quit

你还需要包括你的变量初始化代码,但这应该是一个起点。

FileSystemObject参考

最新更新