Как ЗАКРЫТЬ и СОХРАНИТЬ файл Excel в бесконечно запущенном пакетном файле, только если файл Excel открыт? - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть приложение, которое генерирует данные в файл 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 голосов
/ 09 ноября 2018

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