一次性关闭所有打开的word窗口

bat实现

将以下代码放到 test.bat文件里,双击执行

@echo off
taskkill /f /im WINWORD.EXE
exit
  • taskkill /f /im WINWORD.EXE: 这一行使用了 taskkill 命令来结束名为 WINWORD.EXE 的进程。/f 参数强制结束进程,而 /im 参数指定了要结束的进程的映像名称(即进程的文件名)。

注意:该操作是直接结束进程,如果word更改后没保存,就会丢失数据。

另外:word软件自带恢复功能,对于非正常的关闭,如果一次性关掉了10个word文档,下次打开word时可能自动打开这10个文档,白折腾了。

VBA

保存并关闭所有打开的 Word 文档,可以使用以下 VBA 宏:

Sub SaveAndCloseAllWordDocuments()
    Dim doc As Document
    
    ' 遍历所有打开的文档
    For Each doc In Documents
        ' 保存并关闭文档
        doc.Save
        doc.Close
    Next doc
    
    ' 关闭 Word 应用程序
    Application.Quit
End Sub

但必须打开word后,执行宏才可以运行。

Python

最安全也最省心的方式就是用python实现了

import win32com.client

def save_and_close_word_documents():
    word = win32com.client.Dispatch("Word.Application")
    word.Visible = True  # 设置为True以使Word应用程序可见
    # 获取当前打开的所有文档
    documents = word.Documents
    for document in documents:
        # 检查文档是否有未保存的更改
        if document.Saved == False:
            # 如果有未保存的更改,则保存文档
            document.Save()
        # 关闭文档
        document.Close()
    # 退出Word应用程序
    word.Quit()

if __name__ == "__main__":
    save_and_close_word_documents()

只要脚本关联到python程序就可以双击运行,或者用bat脚本来执行python文件,vbs跟bat一样。

posted @ 2024-04-08 20:59  C羽言  阅读(198)  评论(0编辑  收藏  举报