问题描述
||
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文件
用打开
\“ timesheet.xls \”
然后用gpg再次加密
时间表打开后,它将立即继续进入“加密”阶段。
如何使其等待直到XLS文件关闭才能继续运行脚本(无需用户的明确干预)?解决方法
我用了
START /WAIT \"title\" \"..\\path\\to\\excel.exe\" \"%MYFILE%\"
而且有效。,您最好不要为此使用批处理文件,而要使用AutoIt,它可以等到Excel完成电子表格的打开,然后再从那里继续进行到加密阶段。
要引用他们的页面:
AutoIt v3是一种免费的,类似于BASIC的脚本语言,旨在自动执行Windows GUI和常规脚本。它结合了模拟按键,鼠标移动和窗口/控件操作的组合,从而以其他语言(例如VBScript和SendKeys)不可能或不可靠的方式自动执行任务。 AutoIt也非常小巧,功能齐全,可以直接在所有版本的Windows上运行,而无需烦人的“运行时”!
这将更适合手头的任务。