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% ) )
我有一个batch file,执行以下操作
打开它
“timesheet.xls”
然后用gpg再次encryption
当时间表被打开时,它立即继续到“encryption”阶段。
我怎样才能让它等到XLS文件closures以恢复脚本的运行(没有明确的用户干预)?
我用了
START /WAIT "title" "..\path\to\excel.exe" "%MYFILE%"
它的工作。
忘记使用批处理文件可能会更好,而是使用AutoIt ,它可以等待直到电子表格的打开由Excel完成,然后从那里继续到加密阶段。
引用他们的页面:
AutoIt v3是一款免费的类似于BASIC的脚本语言,用于自动化Windows GUI和一般脚本。 它使用模拟击键,鼠标移动和窗口/控制操作的组合,以便以其他语言(例如VBScript和SendKeys)不可能或不可靠的方式自动执行任务。 AutoIt也是非常小的,自包含的,可以运行在所有版本的Windows开箱即用,不需要烦人的“运行时间”!
这将更适合手头的任务。