Для выполнения этой задачи необходимы 2 типа сценариев.
Пакетный скрипт должен проверить, запущено приложение или нет, если приложение запущено, то оно будет вызывать VB Script, иначе оно запустится.
Пакетная команда:
: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