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%GNUGnuPG" echo 64-bit windows... ) else ( set "GPGBIN=%PROGRAMFILES%GNUGnuPG" 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再次encryption
等待命令完成
Cmd和感叹号 – 第二部分
NodeJSsubprocesspID与实际进程不匹配
当时间表被打开时,它立即继续到“encryption”阶段。
我怎样才能让它等到XLS文件closures以恢复脚本的运行(没有明确的用户干预)?
在嵌套的批处理脚本中执行PHP脚本
批量制表符分隔还会删除ECHO上的字符T,A和B.
如何遍历Windowsbatch file中的文件夹树/子树?
batch file在FOR / f之后不会继续
如何使Windows START命令通过pipe道接受标准input,并将其传递给它所调用的命令?
我用了
START /WAIT "title" "..pathtoexcel.exe" "%MYFILE%"
它的工作。
忘记使用批处理文件可能会更好,而是使用AutoIt ,它可以等待直到电子表格的打开由Excel完成,然后从那里继续到加密阶段。
引用他们的页面:
AutoIt v3是一款免费的类似于BASIC的脚本语言,用于自动化Windows GUI和一般脚本。 它使用模拟击键,鼠标移动和窗口/控制操作的组合,以便以其他语言(例如VBScript和SendKeys)不可能或不可靠的方式自动执行任务。 AutoIt也是非常小的,自包含的,可以运行在所有版本的Windows开箱即用,不需要烦人的“运行时间”!
这将更适合手头的任务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。