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