仅在打开Excel文件的情况下,如何关闭并保存无限运行的批处理文件中的Excel文件?

时间:2018-11-09 00:00:09

标签: batch-file

我有一个将数据生成到excel文件中的应用程序,之后它会自动打开excel文件。因此,我想创建批处理命令以仅在excel打开且此命令需要连续循环的情况下关闭并保存excel文件。如果该命令关闭并保存特定的excel文件,那就太好了。 这是我当前的命令:

@echo off
:start
tasklist /fi "imagename eq EXCEL.EXE" |find ":" > nul
if errorlevel 1 taskkill /f /im "EXCEL.EXE"&exit
goto start

此命令只是在不保存的情况下强制关闭excel文件,并且该文件不会循环。

1 个答案:

答案 0 :(得分:0)

要执行此任务,需要两种类型的脚本。 批处理脚本用于检查应用程序是否正在运行,如果应用程序正在运行,则它将调用VB脚本,否则它将启动。

批处理命令:

    :start
    tasklist /FI "IMAGENAME eq EXCEL.EXE" 2>NUL | find /I /N "EXCEL.EXE">NUL
    if "%ERRORLEVEL%"=="0" (goto Call) else (goto start)

    :Call
    TIMEOUT /T 5
    @call cscript "C:\Temp\Test.vbs"     '<--VBScript location
    goto start

VBScript命令:

Option Explicit

Dim objXL, xlnormal, xlsxformat

On Error Resume Next

Set objXl = GetObject(, "Excel.Application")
xlnormal = &HFFFFEFD1    '# use this for .xls
xlsxformat = &H33        '# use this for .xlsx

On Error Goto 0

On Error Resume Next
objXL.ActiveWorkbook.Save
On Error Goto 0

objXL.Quit
On Error Goto 0