откройте файл и дождитесь его завершения / выхода, затем продолжите пакетный файл - PullRequest
2 голосов
/ 19 апреля 2011
    SETLOCAL enableextensions enabledelayedexpansion
    ::  change your Given/First name
    set MYSELF=Felipe
    set BOSS=Jon
    set "MYFILE=Timesheet_%MYSELF%_FY10.11_Version_1.1.xls"
    set "MYLOCKEDFILE=%MYFILE%.gpg"
    set "SAFETY=~%MYFILE%"

    ::  PFx86: this variable is needed to avoid breaking 'if' statement below
    set "PFx86=%PROGRAMFILES(x86)%"
    if exist (%PFx86%) (
        set "GPGBIN=%PFx86%\GNU\GnuPG\"
        echo 64-bit windows...
    ) else (
        set "GPGBIN=%PROGRAMFILES%\GNU\GnuPG\"
        echo 32-bit windows...
    )

    if exist %MYLOCKEDFILE% (
        echo locked file found
        for %%F in (%MYLOCKEDFILE%) do (
            set ATTRIBS=%%~aF
            set READ_ATTRIB=!ATTRIBS:~1,1!

            if !READ_ATTRIB!==r (
                echo locked file is RO...
                ::  svn lock
                TortoiseProc.exe /command:lock /path:%MYLOCKEDFILE%
            ) else (
                echo locked file is RW...
            )

            ::  decrypt
            echo decrypting...
            "%GPGBIN%\gpg.exe" "%MYLOCKEDFILE%"
        )

        if exist %MYFILE% (
            echo opening %MYFILE%...
            %MYFILE%
            echo encrypting...
            ::  encrypt
            gpg.exe -r %BOSS% -r %MYSELF% -e %MYFILE%
            echo deleting %MYFILE%...
            del %MYFILE%
        )
    )

У меня есть командный файл, который делает следующее

  1. расшифровывает файл timesheet.xls.gpg
  2. открывает его с помощью

    "timesheet.xls"

  3. затем снова шифрует его с помощью gpg

Когда расписание открывается, оно немедленно переходит к фазе «шифрования».

Как заставить его ждать, пока файл XLS будет закрыт, чтобы возобновить выполнение сценария (без явного вмешательства пользователя)?

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

Я использовал

START /WAIT "title" "..\path\to\excel.exe" "%MYFILE%"

И это сработало.

0 голосов
/ 19 апреля 2011

Возможно, вам лучше забыть об использовании командного файла для этого и вместо этого использовать AutoIt , который может подождать, пока открытие таблицы не будет завершено Excel, а затем перейти к этапу шифрования. ,

Цитировать со своей страницы:

AutoIt v3 - это бесплатный BASIC-подобный язык сценариев, разработанный для автоматизации графического интерфейса Windows и общих сценариев. Он использует комбинацию смоделированных нажатий клавиш, движения мыши и манипуляций с окнами / элементами управления, чтобы автоматизировать задачи способом, невозможным или ненадежным для других языков (например, VBScript и SendKeys). AutoIt также очень маленький, автономный и будет работать на всех версиях Windows "из коробки" без навязчивых "рабочих циклов"!

Это будет лучше подходить для поставленной задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...